diff --git a/Source/MQTTnet/Client/MqttClient.cs b/Source/MQTTnet/Client/MqttClient.cs index ccedb5a..bbe5ebd 100644 --- a/Source/MQTTnet/Client/MqttClient.cs +++ b/Source/MQTTnet/Client/MqttClient.cs @@ -176,10 +176,12 @@ namespace MQTTnet.Client public void Dispose() { + _cancellationTokenSource?.Cancel (); _cancellationTokenSource?.Dispose(); _cancellationTokenSource = null; _adapter?.Dispose(); + _adapter = null; } private async Task AuthenticateAsync(MqttApplicationMessage willApplicationMessage, CancellationToken cancellationToken) @@ -238,10 +240,7 @@ namespace MQTTnet.Client } finally { - _adapter?.Dispose(); - _adapter = null; - _cancellationTokenSource?.Dispose(); - _cancellationTokenSource = null; + Dispose (); _cleanDisconnectInitiated = false; _logger.Info("Disconnected."); @@ -384,6 +383,7 @@ namespace MQTTnet.Client if (exception is OperationCanceledException) { + _logger.Info ("MQTT OperationCanceled exception while receiving packets."); } else if (exception is MqttCommunicationException) { diff --git a/Source/MQTTnet/Server/MqttClientSession.cs b/Source/MQTTnet/Server/MqttClientSession.cs index 429fdb4..b2bb96b 100644 --- a/Source/MQTTnet/Server/MqttClientSession.cs +++ b/Source/MQTTnet/Server/MqttClientSession.cs @@ -125,7 +125,7 @@ namespace MQTTnet.Server } _adapter = null; - + _cancellationTokenSource?.Cancel (); _cancellationTokenSource?.Dispose(); _cancellationTokenSource = null; } @@ -240,7 +240,9 @@ namespace MQTTnet.Server { _pendingPacketsQueue?.Dispose(); + _cancellationTokenSource?.Cancel (); _cancellationTokenSource?.Dispose(); + _cancellationTokenSource = null; } private void ProcessReceivedPacket(IMqttChannelAdapter adapter, MqttBasePacket packet, CancellationToken cancellationToken)