diff --git a/Build/MQTTnet.nuspec b/Build/MQTTnet.nuspec index 53ae240f..e2bfb867 100644 --- a/Build/MQTTnet.nuspec +++ b/Build/MQTTnet.nuspec @@ -15,6 +15,7 @@ * [Core] Added support for TLS 1.3 (requires .NET Core 3.1+) (thanks to @Dvergatal). * [Core] Added support for _MaximumQoS_ transmit when using MQTTv5 (thanks to @nayato). * [Core] Aligned the format of some log messages. +* [ManagedClient] Removed _AutoReconnect_ since this does no longer work (BREAKING CHANGE!). * [RpcClient] Moved the RPC topic validation to the topic generation strategy. * [RcpClient] Added interface for _MqttRpcClient_. * [Server] Reduced async tasks count by moving dedicated keep alive tasks per connection to shared one. diff --git a/Source/MQTTnet.Extensions.ManagedClient/IManagedMqttClientOptions.cs b/Source/MQTTnet.Extensions.ManagedClient/IManagedMqttClientOptions.cs index 91b2041e..a705efea 100644 --- a/Source/MQTTnet.Extensions.ManagedClient/IManagedMqttClientOptions.cs +++ b/Source/MQTTnet.Extensions.ManagedClient/IManagedMqttClientOptions.cs @@ -8,8 +8,6 @@ namespace MQTTnet.Extensions.ManagedClient { IMqttClientOptions ClientOptions { get; } - bool AutoReconnect { get; } - TimeSpan AutoReconnectDelay { get; } TimeSpan ConnectionCheckInterval { get; } diff --git a/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs b/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs index b96efc7d..40b46ee7 100644 --- a/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs +++ b/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs @@ -99,9 +99,9 @@ namespace MQTTnet.Extensions.ManagedClient Options = options; - if (Options.Storage != null) + if (options.Storage != null) { - _storageManager = new ManagedMqttClientStorageManager(Options.Storage); + _storageManager = new ManagedMqttClientStorageManager(options.Storage); var messages = await _storageManager.LoadQueuedMessagesAsync().ConfigureAwait(false); foreach (var message in messages) @@ -110,16 +110,13 @@ namespace MQTTnet.Extensions.ManagedClient } } - if (Options.AutoReconnect) - { - var cancellationTokenSource = new CancellationTokenSource(); - var cancellationToken = cancellationTokenSource.Token; - _connectionCancellationToken = cancellationTokenSource; + var cancellationTokenSource = new CancellationTokenSource(); + var cancellationToken = cancellationTokenSource.Token; + _connectionCancellationToken = cancellationTokenSource; + + _maintainConnectionTask = Task.Run(() => MaintainConnectionAsync(cancellationToken), cancellationToken); + _maintainConnectionTask.RunInBackground(_logger); - _maintainConnectionTask = Task.Run(() => MaintainConnectionAsync(cancellationToken), cancellationToken); - _maintainConnectionTask.Forget(_logger); - } - _logger.Info("Started"); } @@ -579,7 +576,7 @@ namespace MQTTnet.Extensions.ManagedClient var cancellationToken = cancellationTokenSource.Token; _publishingCancellationToken = cancellationTokenSource; - Task.Run(() => PublishQueuedMessagesAsync(cancellationToken), cancellationToken).Forget(_logger); + Task.Run(() => PublishQueuedMessagesAsync(cancellationToken), cancellationToken).RunInBackground(_logger); } void StopPublishing() diff --git a/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClientOptions.cs b/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClientOptions.cs index d0ed4dc1..05035bb3 100644 --- a/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClientOptions.cs +++ b/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClientOptions.cs @@ -8,8 +8,6 @@ namespace MQTTnet.Extensions.ManagedClient { public IMqttClientOptions ClientOptions { get; set; } - public bool AutoReconnect { get; set; } = true; - public TimeSpan AutoReconnectDelay { get; set; } = TimeSpan.FromSeconds(5); public TimeSpan ConnectionCheckInterval { get; set; } = TimeSpan.FromSeconds(1); diff --git a/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClientOptionsBuilder.cs b/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClientOptionsBuilder.cs index 5f7a29fa..6157655b 100644 --- a/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClientOptionsBuilder.cs +++ b/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClientOptionsBuilder.cs @@ -68,18 +68,6 @@ namespace MQTTnet.Extensions.ManagedClient options(_clientOptionsBuilder); return this; } - - public ManagedMqttClientOptionsBuilder WithAutoReconnect() - { - _options.AutoReconnect = true; - return this; - } - - public ManagedMqttClientOptionsBuilder WithoutAutoReconnect() - { - _options.AutoReconnect = false; - return this; - } public ManagedMqttClientOptions Build() {