diff --git a/Build/MQTTnet.nuspec b/Build/MQTTnet.nuspec index 22cd3ae1..a9000eb0 100644 --- a/Build/MQTTnet.nuspec +++ b/Build/MQTTnet.nuspec @@ -18,6 +18,7 @@ * [Client] Received messages are now processed completely in the worker thread without creating new Tasks. * [Client] Fixed wrong calculation for sending keep alive packets (thanks to @cstichlberger) * [Client] A clean disconnect (via DisconnectAsync) will no longer throw an exception. +* [Client] Added new overloads for quick message publishing. * [ManagedClient] The managed client is moved to a separate nuget package. * [ManagedClient] Added an own message format with extended properties like ID (BREAKING CHANGE). * [ManagedClient] Fixed a loading issue of stored application messages (thanks to @JTrotta). diff --git a/Source/MQTTnet/ApplicationMessagePublisherExtensions.cs b/Source/MQTTnet/ApplicationMessagePublisherExtensions.cs index dd166627..81dddbf1 100644 --- a/Source/MQTTnet/ApplicationMessagePublisherExtensions.cs +++ b/Source/MQTTnet/ApplicationMessagePublisherExtensions.cs @@ -14,7 +14,7 @@ namespace MQTTnet foreach (var applicationMessage in applicationMessages) { - await publisher.PublishAsync(applicationMessage); + await publisher.PublishAsync(applicationMessage).ConfigureAwait(false); } } @@ -25,7 +25,7 @@ namespace MQTTnet foreach (var applicationMessage in applicationMessages) { - await publisher.PublishAsync(applicationMessage); + await publisher.PublishAsync(applicationMessage).ConfigureAwait(false); } } @@ -35,8 +35,7 @@ namespace MQTTnet if (topic == null) throw new ArgumentNullException(nameof(topic)); return publisher.PublishAsync(builder => builder - .WithTopic(topic) - ); + .WithTopic(topic)); } public static Task PublishAsync(this IApplicationMessagePublisher publisher, string topic, string payload) @@ -46,8 +45,7 @@ namespace MQTTnet return publisher.PublishAsync(builder => builder .WithTopic(topic) - .WithPayload(payload) - ); + .WithPayload(payload)); } public static Task PublishAsync(this IApplicationMessagePublisher publisher, string topic, string payload, MqttQualityOfServiceLevel qualityOfServiceLevel) @@ -55,11 +53,22 @@ namespace MQTTnet if (publisher == null) throw new ArgumentNullException(nameof(publisher)); if (topic == null) throw new ArgumentNullException(nameof(topic)); + return publisher.PublishAsync(builder => builder + .WithTopic(topic) + .WithPayload(payload) + .WithQualityOfServiceLevel(qualityOfServiceLevel)); + } + + public static Task PublishAsync(this IApplicationMessagePublisher publisher, string topic, string payload, MqttQualityOfServiceLevel qualityOfServiceLevel, bool retain) + { + if (publisher == null) throw new ArgumentNullException(nameof(publisher)); + if (topic == null) throw new ArgumentNullException(nameof(topic)); + return publisher.PublishAsync(builder => builder .WithTopic(topic) .WithPayload(payload) .WithQualityOfServiceLevel(qualityOfServiceLevel) - ); + .WithRetainFlag(retain)); } public static Task PublishAsync(this IApplicationMessagePublisher publisher, Func builder)