From 1114fa041d4460021b801deae0bd3f7587a66010 Mon Sep 17 00:00:00 2001 From: christian <6939810+chkr1011@users.noreply.github.com> Date: Mon, 20 Oct 2025 20:52:31 +0200 Subject: [PATCH 1/3] Add new PowerShell project --- MQTTnet.sln | 6 ++ .../Cmdlets/ConnectMqttSessionCmdlet.cs | 47 ++++++++++++ .../Cmdlets/DisconnectMqttSessionCmdlet.cs | 31 ++++++++ .../Cmdlets/NewMqttSessionCmdlet.cs | 13 ++++ .../Cmdlets/PublishMqttMessageCmdlet.cs | 40 ++++++++++ .../Cmdlets/ReceiveMqttMessageCmdlet.cs | 74 +++++++++++++++++++ .../RegisterMqttMessageHandlerCmdlet.cs | 26 +++++++ .../Cmdlets/RemoveMqttSessionCmdlet.cs | 16 ++++ .../Cmdlets/SubscribeMqttTopicCmdlet.cs | 30 ++++++++ .../Cmdlets/UnsubscribeMqttTopicCmdlet.cs | 21 ++++++ .../MQTTnet.PowerShell.csproj | 19 +++++ Source/MQTTnet.PowerShell/MqttMessage.cs | 19 +++++ Source/MQTTnet.PowerShell/MqttSession.cs | 72 ++++++++++++++++++ Source/MQTTnet.PowerShell/Test.ps1 | 15 ++++ Source/MQTTnet.Tests/Server/Load_Tests.cs | 5 +- 15 files changed, 432 insertions(+), 2 deletions(-) create mode 100644 Source/MQTTnet.PowerShell/Cmdlets/ConnectMqttSessionCmdlet.cs create mode 100644 Source/MQTTnet.PowerShell/Cmdlets/DisconnectMqttSessionCmdlet.cs create mode 100644 Source/MQTTnet.PowerShell/Cmdlets/NewMqttSessionCmdlet.cs create mode 100644 Source/MQTTnet.PowerShell/Cmdlets/PublishMqttMessageCmdlet.cs create mode 100644 Source/MQTTnet.PowerShell/Cmdlets/ReceiveMqttMessageCmdlet.cs create mode 100644 Source/MQTTnet.PowerShell/Cmdlets/RegisterMqttMessageHandlerCmdlet.cs create mode 100644 Source/MQTTnet.PowerShell/Cmdlets/RemoveMqttSessionCmdlet.cs create mode 100644 Source/MQTTnet.PowerShell/Cmdlets/SubscribeMqttTopicCmdlet.cs create mode 100644 Source/MQTTnet.PowerShell/Cmdlets/UnsubscribeMqttTopicCmdlet.cs create mode 100644 Source/MQTTnet.PowerShell/MQTTnet.PowerShell.csproj create mode 100644 Source/MQTTnet.PowerShell/MqttMessage.cs create mode 100644 Source/MQTTnet.PowerShell/MqttSession.cs create mode 100644 Source/MQTTnet.PowerShell/Test.ps1 diff --git a/MQTTnet.sln b/MQTTnet.sln index 2c1fcd710..5886b9740 100644 --- a/MQTTnet.sln +++ b/MQTTnet.sln @@ -33,6 +33,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MQTTnet.Extensions.TopicTem EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MQTTnet.Server", "Source\MQTTnet.Server\MQTTnet.Server.csproj", "{C876EFFD-C5AD-4E26-BD9F-4C48252C02BC}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MQTTnet.PowerShell", "Source\MQTTnet.PowerShell\MQTTnet.PowerShell.csproj", "{37B129C5-0231-4EB5-AF13-77959068911C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -79,6 +81,10 @@ Global {C876EFFD-C5AD-4E26-BD9F-4C48252C02BC}.Debug|Any CPU.Build.0 = Debug|Any CPU {C876EFFD-C5AD-4E26-BD9F-4C48252C02BC}.Release|Any CPU.ActiveCfg = Release|Any CPU {C876EFFD-C5AD-4E26-BD9F-4C48252C02BC}.Release|Any CPU.Build.0 = Release|Any CPU + {37B129C5-0231-4EB5-AF13-77959068911C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37B129C5-0231-4EB5-AF13-77959068911C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37B129C5-0231-4EB5-AF13-77959068911C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37B129C5-0231-4EB5-AF13-77959068911C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Source/MQTTnet.PowerShell/Cmdlets/ConnectMqttSessionCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/ConnectMqttSessionCmdlet.cs new file mode 100644 index 000000000..7bf780b92 --- /dev/null +++ b/Source/MQTTnet.PowerShell/Cmdlets/ConnectMqttSessionCmdlet.cs @@ -0,0 +1,47 @@ +using System.Management.Automation; + +namespace MQTTnet.PowerShell.Cmdlets; + +[Cmdlet(VerbsCommunications.Connect, "MqttSession")] +[OutputType(typeof(MqttClientConnectResult))] +public class ConnectMqttSessionCmdlet : PSCmdlet +{ + [Parameter] + public SwitchParameter CleanSession { get; set; } = true; + + [Parameter] + public string? ClientId { get; set; } = Guid.NewGuid().ToString(); + + [Parameter(Mandatory = true)] + public required new string Host { get; set; } + + [Parameter] + public string? Password { get; set; } + + [Parameter] + public int Port { get; set; } = 1883; + + [Parameter(Mandatory = true, ValueFromPipeline = true)] + public required MqttSession Session { get; set; } + + [Parameter] + public string? Username { get; set; } + + [Parameter] + public SwitchParameter UseTls { get; set; } + + protected override void ProcessRecord() + { + var clientOptionsBuilder = new MqttClientOptionsBuilder(); + clientOptionsBuilder.WithTcpServer(Host, Port); + + if (Username != null) + { + clientOptionsBuilder.WithCredentials(Username, Password); + } + + var response = Session.Client.ConnectAsync(clientOptionsBuilder.Build()).GetAwaiter().GetResult(); + + WriteObject(response); + } +} \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/Cmdlets/DisconnectMqttSessionCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/DisconnectMqttSessionCmdlet.cs new file mode 100644 index 000000000..b9e509bc5 --- /dev/null +++ b/Source/MQTTnet.PowerShell/Cmdlets/DisconnectMqttSessionCmdlet.cs @@ -0,0 +1,31 @@ +using System.Management.Automation; + +namespace MQTTnet.PowerShell.Cmdlets; + +[Cmdlet(VerbsCommunications.Disconnect, "MqttSession")] +public class DisconnectMqttSessionCmdlet : PSCmdlet +{ + [Parameter] + public MqttClientDisconnectOptionsReason Reason { get; set; } = MqttClientDisconnectOptionsReason.NormalDisconnection; + + [Parameter] + public string? ReasonString { get; set; } + + [Parameter(Mandatory = true, ValueFromPipeline = true)] + public required MqttSession Session { get; set; } + + [Parameter] + public uint SessionExpiryInterval { get; set; } + + protected override void ProcessRecord() + { + if (Session.Client.IsConnected) + { + var options = new MqttClientDisconnectOptionsBuilder().WithSessionExpiryInterval(SessionExpiryInterval).WithReason(Reason).WithReasonString(ReasonString).Build(); + + Session.Client.DisconnectAsync(options).GetAwaiter().GetResult(); + } + + WriteObject("Disconnected."); + } +} \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/Cmdlets/NewMqttSessionCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/NewMqttSessionCmdlet.cs new file mode 100644 index 000000000..1eeef8967 --- /dev/null +++ b/Source/MQTTnet.PowerShell/Cmdlets/NewMqttSessionCmdlet.cs @@ -0,0 +1,13 @@ +using System.Management.Automation; + +namespace MQTTnet.PowerShell.Cmdlets; + +[Cmdlet(VerbsCommon.New, "MqttSession")] +[OutputType(typeof(MqttSession))] +public class NewMqttSessionCmdlet : PSCmdlet +{ + protected override void ProcessRecord() + { + WriteObject(new MqttSession()); + } +} \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/Cmdlets/PublishMqttMessageCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/PublishMqttMessageCmdlet.cs new file mode 100644 index 000000000..0b2ec3720 --- /dev/null +++ b/Source/MQTTnet.PowerShell/Cmdlets/PublishMqttMessageCmdlet.cs @@ -0,0 +1,40 @@ +using System.Management.Automation; +using System.Text; +using MQTTnet.Protocol; + +namespace MQTTnet.PowerShell.Cmdlets; + +[Cmdlet(VerbsData.Publish, "MqttMessage")] +public class PublishMqttMessageCmdlet : PSCmdlet +{ + [Parameter(Mandatory = true)] + public string? Payload { get; set; } + + [Parameter] + public int QoS { get; set; } = 0; + + [Parameter] + public SwitchParameter Retain { get; set; } + + [Parameter(Mandatory = true, ValueFromPipeline = true)] + public required MqttSession Session { get; set; } + + [Parameter(Mandatory = true)] + public required string Topic { get; set; } + + protected override void ProcessRecord() + { + // if (Session == null || !Session.IsConnected) + // throw new InvalidOperationException("Session not connected."); + + var msg = new MqttApplicationMessageBuilder().WithTopic(Topic) + .WithPayload(Encoding.UTF8.GetBytes(Payload ?? string.Empty)) + .WithQualityOfServiceLevel((MqttQualityOfServiceLevel)QoS) + .WithRetainFlag(Retain) + .Build(); + + var response = Session.Client.PublishAsync(msg).GetAwaiter().GetResult(); + + WriteObject(response); + } +} \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/Cmdlets/ReceiveMqttMessageCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/ReceiveMqttMessageCmdlet.cs new file mode 100644 index 000000000..857fc6809 --- /dev/null +++ b/Source/MQTTnet.PowerShell/Cmdlets/ReceiveMqttMessageCmdlet.cs @@ -0,0 +1,74 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Management.Automation; + +namespace MQTTnet.PowerShell.Cmdlets; + +[Cmdlet(VerbsCommunications.Receive, "MqttMessage")] +[OutputType(typeof(MqttMessage))] +public class ReceiveMqttMessageCmdlet : PSCmdlet +{ + [Parameter(Mandatory = true, ValueFromPipeline = true)] + public required MqttSession Session { get; set; } + + [Parameter] + [ValidateRange(0, int.MaxValue)] + public int TimeoutSeconds { get; set; } = 0; + + protected override void ProcessRecord() + { + var tcs = new TaskCompletionSource(); + EventHandler? handler = null; + CancellationTokenSource? cts = null; + + try + { + handler = (s, e) => + { + if (!tcs.Task.IsCompleted) + { + tcs.TrySetResult(e); + } + }; + + Session.MessageReceived += handler; + + // Optionaler Timeout + if (TimeoutSeconds > 0) + { + cts = new CancellationTokenSource(); + cts.CancelAfter(TimeSpan.FromSeconds(TimeoutSeconds)); + cts.Token.Register(() => + { + if (!tcs.Task.IsCompleted) + { + tcs.TrySetCanceled(); + } + }); + } + + WriteVerbose("Waiting for next MQTT message..."); + + try + { + var message = tcs.Task.GetAwaiter().GetResult(); + WriteObject(message); + } + catch (TaskCanceledException) + { + WriteWarning($"Timeout after {TimeoutSeconds} seconds — no message received."); + } + } + finally + { + if (handler != null) + { + Session.MessageReceived -= handler; + } + + cts?.Dispose(); + } + } +} \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/Cmdlets/RegisterMqttMessageHandlerCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/RegisterMqttMessageHandlerCmdlet.cs new file mode 100644 index 000000000..62852bfd5 --- /dev/null +++ b/Source/MQTTnet.PowerShell/Cmdlets/RegisterMqttMessageHandlerCmdlet.cs @@ -0,0 +1,26 @@ +using System.Management.Automation; +using System.Management.Automation.Runspaces; + +namespace MQTTnet.PowerShell.Cmdlets; + +[Cmdlet(VerbsLifecycle.Register, "MqttMessageHandler")] +public class RegisterMqttMessageHandlerCmdlet : PSCmdlet +{ + [Parameter(Mandatory = true, ValueFromPipeline = true)] + public required MqttSession Session { get; set; } + + [Parameter(Mandatory = true)] + public ScriptBlock? Action { get; set; } + + protected override void ProcessRecord() + { + EventHandler handler = (s, e) => + { + //throw new NotImplementedException(); + //InvokeCommand.InvokeScript(Action, false, PipelineResultTypes.Output, null, new object[] { e.Topic, e.Payload }); + }; + + Session.MessageReceived += handler; + WriteObject($"Handler registered for MQTT messages on session."); + } +} \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/Cmdlets/RemoveMqttSessionCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/RemoveMqttSessionCmdlet.cs new file mode 100644 index 000000000..fe5da4c6f --- /dev/null +++ b/Source/MQTTnet.PowerShell/Cmdlets/RemoveMqttSessionCmdlet.cs @@ -0,0 +1,16 @@ +using System.Management.Automation; + +namespace MQTTnet.PowerShell.Cmdlets; + +[Cmdlet(VerbsCommon.Remove, "MqttSession")] +public class RemoveMqttSessionCmdlet : PSCmdlet +{ + [Parameter(Mandatory = true, ValueFromPipeline = true)] + public required MqttSession Session { get; set; } + + protected override void ProcessRecord() + { + Session.Dispose(); + WriteObject("Session removed."); + } +} \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/Cmdlets/SubscribeMqttTopicCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/SubscribeMqttTopicCmdlet.cs new file mode 100644 index 000000000..8ad774d29 --- /dev/null +++ b/Source/MQTTnet.PowerShell/Cmdlets/SubscribeMqttTopicCmdlet.cs @@ -0,0 +1,30 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Management.Automation; + +namespace MQTTnet.PowerShell.Cmdlets; + +[Cmdlet("Subscribe", "MqttTopic")] +[OutputType(typeof(MqttClientSubscribeResult))] +public class SubscribeMqttTopicCmdlet : PSCmdlet +{ + [Parameter] + public int QoS { get; set; } = 0; + + [Parameter(Mandatory = true, ValueFromPipeline = true)] + public required MqttSession Session { get; set; } + + [Parameter(Mandatory = true)] + public required string Topic { get; set; } + + protected override void ProcessRecord() + { + var topicFilter = new MqttTopicFilterBuilder().WithTopic(Topic).Build(); + + var response = Session.Client.SubscribeAsync(topicFilter).GetAwaiter().GetResult(); + + WriteObject(response); + } +} \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/Cmdlets/UnsubscribeMqttTopicCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/UnsubscribeMqttTopicCmdlet.cs new file mode 100644 index 000000000..84f69cbe4 --- /dev/null +++ b/Source/MQTTnet.PowerShell/Cmdlets/UnsubscribeMqttTopicCmdlet.cs @@ -0,0 +1,21 @@ +using System.Management.Automation; + +namespace MQTTnet.PowerShell.Cmdlets; + +[Cmdlet("Unsubscribe", "MqttTopic")] +[OutputType(typeof(MqttClientUnsubscribeResult))] +public class UnsubscribeMqttTopicCmdlet : PSCmdlet +{ + [Parameter(Mandatory = true, ValueFromPipeline = true)] + public required MqttSession Session { get; set; } + + [Parameter(Mandatory = true)] + public required string Topic { get; set; } + + protected override void ProcessRecord() + { + var response = Session.Client.UnsubscribeAsync(Topic).GetAwaiter().GetResult(); + + WriteObject(response); + } +} \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/MQTTnet.PowerShell.csproj b/Source/MQTTnet.PowerShell/MQTTnet.PowerShell.csproj new file mode 100644 index 000000000..cb5d0a089 --- /dev/null +++ b/Source/MQTTnet.PowerShell/MQTTnet.PowerShell.csproj @@ -0,0 +1,19 @@ + + + + MQTTnet.PowerShell + default + enable + + + + + All + + + + + + + + diff --git a/Source/MQTTnet.PowerShell/MqttMessage.cs b/Source/MQTTnet.PowerShell/MqttMessage.cs new file mode 100644 index 000000000..8a28d36aa --- /dev/null +++ b/Source/MQTTnet.PowerShell/MqttMessage.cs @@ -0,0 +1,19 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using MQTTnet.Packets; + +namespace MQTTnet.PowerShell; + +public class MqttMessage +{ + public required string? ContentType { get; init; } + public required string Payload { get; init; } + public int QoS { get; init; } + public required byte[] RawPayload { get; init; } + public string? ResponseTopic { get; init; } + public bool Retain { get; init; } + public required string Topic { get; init; } + public required List? UserProperties { get; init; } +} \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/MqttSession.cs b/Source/MQTTnet.PowerShell/MqttSession.cs new file mode 100644 index 000000000..014dba0aa --- /dev/null +++ b/Source/MQTTnet.PowerShell/MqttSession.cs @@ -0,0 +1,72 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Buffers; +using System.Text; +using MQTTnet.Protocol; + +namespace MQTTnet.PowerShell; + +public sealed class MqttSession : IDisposable +{ + public MqttSession() + { + var factory = new MqttClientFactory(); + Client = factory.CreateMqttClient(); + + Client.ApplicationMessageReceivedAsync += e => + { + MessageReceived?.Invoke(this, new MqttMessage + { + Topic = e.ApplicationMessage.Topic, + Payload = Encoding.UTF8.GetString(e.ApplicationMessage.Payload), + RawPayload = e.ApplicationMessage.Payload.ToArray(), + UserProperties = e.ApplicationMessage.UserProperties, + QoS = (int)e.ApplicationMessage.QualityOfServiceLevel, + ContentType = e.ApplicationMessage.ContentType, + Retain = e.ApplicationMessage.Retain, + ResponseTopic = e.ApplicationMessage.ResponseTopic + + }); + return Task.CompletedTask; + }; + + // Client.ConnectedAsync += e => + // { + // //Connected?.Invoke(this, e); + // return Task.CompletedTask; + // }; + // + // Client.DisconnectedAsync += e => + // { + // //Disconnected?.Invoke(this, e); + // return Task.CompletedTask; + // }; + } + + // public event EventHandler Connected; + // public event EventHandler Disconnected; + public event EventHandler? MessageReceived; + + public IMqttClient Client { get; } + + public void Dispose() + { + try + { + if (Client != null) + { + if (Client.IsConnected) + { + Client.DisconnectAsync().Wait(); + } + + Client.Dispose(); + } + } + catch + { + } + } +} \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/Test.ps1 b/Source/MQTTnet.PowerShell/Test.ps1 new file mode 100644 index 000000000..985330eab --- /dev/null +++ b/Source/MQTTnet.PowerShell/Test.ps1 @@ -0,0 +1,15 @@ +Import-Module ./bin/Debug/net8.0/MQTTnet.PowerShell.dll + +$session = New-MqttSession + +Connect-MqttSession -Session $session -Host "192.168.1.16" + +Publish-MqttMessage -Session $session -Topic "Test" -Payload "Hello from PowerShell" + +Subscribe-MqttTopic -Session $session -Topic "test/demo" + +Receive-MqttMessage -Session $session -TimeoutSeconds 200 + +Disconnect-MqttSession -Session $session +Remove-MqttSession -Session $session + diff --git a/Source/MQTTnet.Tests/Server/Load_Tests.cs b/Source/MQTTnet.Tests/Server/Load_Tests.cs index 2c8276e64..a302d4140 100644 --- a/Source/MQTTnet.Tests/Server/Load_Tests.cs +++ b/Source/MQTTnet.Tests/Server/Load_Tests.cs @@ -1,6 +1,7 @@ #if DEBUG using System; +using System.Globalization; using System.Threading; using System.Threading.Tasks; using Microsoft.VisualStudio.TestTools.UnitTesting; @@ -56,7 +57,7 @@ await client.SendAsync( for (var j = 0; j < 1000; j++) { - publishPacket.Topic = j.ToString(); + publishPacket.Topic = j.ToString(CultureInfo.InvariantCulture); await client.SendAsync(publishPacket, CancellationToken.None); } @@ -143,7 +144,7 @@ public async Task Handle_100_000_Messages_In_Server() for (var j = 0; j < 1000; j++) { - var message = applicationMessageBuilder.WithTopic(j.ToString()).Build(); + var message = applicationMessageBuilder.WithTopic(j.ToString(CultureInfo.InvariantCulture)).Build(); await client.PublishAsync(message); } From 61cbaa06a8c4473dae5245975cbe05306a2a0808 Mon Sep 17 00:00:00 2001 From: christian <6939810+chkr1011@users.noreply.github.com> Date: Mon, 20 Oct 2025 21:41:20 +0200 Subject: [PATCH 2/3] Expose more properties --- .../Cmdlets/ConnectMqttSessionCmdlet.cs | 4 +- .../Cmdlets/DisconnectMqttSessionCmdlet.cs | 6 +- .../Cmdlets/NewMqttSessionCmdlet.cs | 4 +- .../Cmdlets/PublishMqttMessageCmdlet.cs | 16 ++++- .../Cmdlets/ReceiveMqttMessageCmdlet.cs | 8 +-- .../RegisterMqttMessageHandlerCmdlet.cs | 4 +- .../Cmdlets/RemoveMqttSessionCmdlet.cs | 2 +- .../Cmdlets/SubscribeMqttTopicCmdlet.cs | 31 +++++++- .../Cmdlets/UnsubscribeMqttTopicCmdlet.cs | 6 +- Source/MQTTnet.PowerShell/MqttSession.cs | 72 ------------------- .../{MqttMessage.cs => PsMqttMessage.cs} | 13 +++- Source/MQTTnet.PowerShell/PsMqttSession.cs | 50 +++++++++++++ 12 files changed, 122 insertions(+), 94 deletions(-) delete mode 100644 Source/MQTTnet.PowerShell/MqttSession.cs rename Source/MQTTnet.PowerShell/{MqttMessage.cs => PsMqttMessage.cs} (82%) create mode 100644 Source/MQTTnet.PowerShell/PsMqttSession.cs diff --git a/Source/MQTTnet.PowerShell/Cmdlets/ConnectMqttSessionCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/ConnectMqttSessionCmdlet.cs index 7bf780b92..e576267b6 100644 --- a/Source/MQTTnet.PowerShell/Cmdlets/ConnectMqttSessionCmdlet.cs +++ b/Source/MQTTnet.PowerShell/Cmdlets/ConnectMqttSessionCmdlet.cs @@ -22,7 +22,7 @@ public class ConnectMqttSessionCmdlet : PSCmdlet public int Port { get; set; } = 1883; [Parameter(Mandatory = true, ValueFromPipeline = true)] - public required MqttSession Session { get; set; } + public required PsMqttSession Session { get; set; } [Parameter] public string? Username { get; set; } @@ -40,7 +40,7 @@ protected override void ProcessRecord() clientOptionsBuilder.WithCredentials(Username, Password); } - var response = Session.Client.ConnectAsync(clientOptionsBuilder.Build()).GetAwaiter().GetResult(); + var response = Session.GetClient().ConnectAsync(clientOptionsBuilder.Build()).GetAwaiter().GetResult(); WriteObject(response); } diff --git a/Source/MQTTnet.PowerShell/Cmdlets/DisconnectMqttSessionCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/DisconnectMqttSessionCmdlet.cs index b9e509bc5..4d86fcc4a 100644 --- a/Source/MQTTnet.PowerShell/Cmdlets/DisconnectMqttSessionCmdlet.cs +++ b/Source/MQTTnet.PowerShell/Cmdlets/DisconnectMqttSessionCmdlet.cs @@ -12,18 +12,18 @@ public class DisconnectMqttSessionCmdlet : PSCmdlet public string? ReasonString { get; set; } [Parameter(Mandatory = true, ValueFromPipeline = true)] - public required MqttSession Session { get; set; } + public required PsMqttSession Session { get; set; } [Parameter] public uint SessionExpiryInterval { get; set; } protected override void ProcessRecord() { - if (Session.Client.IsConnected) + if (Session.GetClient().IsConnected) { var options = new MqttClientDisconnectOptionsBuilder().WithSessionExpiryInterval(SessionExpiryInterval).WithReason(Reason).WithReasonString(ReasonString).Build(); - Session.Client.DisconnectAsync(options).GetAwaiter().GetResult(); + Session.GetClient().DisconnectAsync(options).GetAwaiter().GetResult(); } WriteObject("Disconnected."); diff --git a/Source/MQTTnet.PowerShell/Cmdlets/NewMqttSessionCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/NewMqttSessionCmdlet.cs index 1eeef8967..68aaae3f7 100644 --- a/Source/MQTTnet.PowerShell/Cmdlets/NewMqttSessionCmdlet.cs +++ b/Source/MQTTnet.PowerShell/Cmdlets/NewMqttSessionCmdlet.cs @@ -3,11 +3,11 @@ namespace MQTTnet.PowerShell.Cmdlets; [Cmdlet(VerbsCommon.New, "MqttSession")] -[OutputType(typeof(MqttSession))] +[OutputType(typeof(PsMqttSession))] public class NewMqttSessionCmdlet : PSCmdlet { protected override void ProcessRecord() { - WriteObject(new MqttSession()); + WriteObject(new PsMqttSession()); } } \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/Cmdlets/PublishMqttMessageCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/PublishMqttMessageCmdlet.cs index 0b2ec3720..7547b25b6 100644 --- a/Source/MQTTnet.PowerShell/Cmdlets/PublishMqttMessageCmdlet.cs +++ b/Source/MQTTnet.PowerShell/Cmdlets/PublishMqttMessageCmdlet.cs @@ -17,11 +17,19 @@ public class PublishMqttMessageCmdlet : PSCmdlet public SwitchParameter Retain { get; set; } [Parameter(Mandatory = true, ValueFromPipeline = true)] - public required MqttSession Session { get; set; } + public required PsMqttSession Session { get; set; } [Parameter(Mandatory = true)] public required string Topic { get; set; } + public string? ContentType { get; set; } + + public string? ResponseTopic { get; set; } + + public ushort TopicAlias { get; set; } + + public uint MessageExpiryInterval { get; set; } + protected override void ProcessRecord() { // if (Session == null || !Session.IsConnected) @@ -31,9 +39,13 @@ protected override void ProcessRecord() .WithPayload(Encoding.UTF8.GetBytes(Payload ?? string.Empty)) .WithQualityOfServiceLevel((MqttQualityOfServiceLevel)QoS) .WithRetainFlag(Retain) + .WithContentType(ContentType) + .WithResponseTopic(ResponseTopic) + .WithTopicAlias(TopicAlias) + .WithMessageExpiryInterval(MessageExpiryInterval) .Build(); - var response = Session.Client.PublishAsync(msg).GetAwaiter().GetResult(); + var response = Session.GetClient().PublishAsync(msg).GetAwaiter().GetResult(); WriteObject(response); } diff --git a/Source/MQTTnet.PowerShell/Cmdlets/ReceiveMqttMessageCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/ReceiveMqttMessageCmdlet.cs index 857fc6809..82983d5ef 100644 --- a/Source/MQTTnet.PowerShell/Cmdlets/ReceiveMqttMessageCmdlet.cs +++ b/Source/MQTTnet.PowerShell/Cmdlets/ReceiveMqttMessageCmdlet.cs @@ -7,11 +7,11 @@ namespace MQTTnet.PowerShell.Cmdlets; [Cmdlet(VerbsCommunications.Receive, "MqttMessage")] -[OutputType(typeof(MqttMessage))] +[OutputType(typeof(PsMqttMessage))] public class ReceiveMqttMessageCmdlet : PSCmdlet { [Parameter(Mandatory = true, ValueFromPipeline = true)] - public required MqttSession Session { get; set; } + public required PsMqttSession Session { get; set; } [Parameter] [ValidateRange(0, int.MaxValue)] @@ -19,8 +19,8 @@ public class ReceiveMqttMessageCmdlet : PSCmdlet protected override void ProcessRecord() { - var tcs = new TaskCompletionSource(); - EventHandler? handler = null; + var tcs = new TaskCompletionSource(); + EventHandler? handler = null; CancellationTokenSource? cts = null; try diff --git a/Source/MQTTnet.PowerShell/Cmdlets/RegisterMqttMessageHandlerCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/RegisterMqttMessageHandlerCmdlet.cs index 62852bfd5..844e45b9c 100644 --- a/Source/MQTTnet.PowerShell/Cmdlets/RegisterMqttMessageHandlerCmdlet.cs +++ b/Source/MQTTnet.PowerShell/Cmdlets/RegisterMqttMessageHandlerCmdlet.cs @@ -7,14 +7,14 @@ namespace MQTTnet.PowerShell.Cmdlets; public class RegisterMqttMessageHandlerCmdlet : PSCmdlet { [Parameter(Mandatory = true, ValueFromPipeline = true)] - public required MqttSession Session { get; set; } + public required PsMqttSession Session { get; set; } [Parameter(Mandatory = true)] public ScriptBlock? Action { get; set; } protected override void ProcessRecord() { - EventHandler handler = (s, e) => + EventHandler handler = (s, e) => { //throw new NotImplementedException(); //InvokeCommand.InvokeScript(Action, false, PipelineResultTypes.Output, null, new object[] { e.Topic, e.Payload }); diff --git a/Source/MQTTnet.PowerShell/Cmdlets/RemoveMqttSessionCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/RemoveMqttSessionCmdlet.cs index fe5da4c6f..3e3084a44 100644 --- a/Source/MQTTnet.PowerShell/Cmdlets/RemoveMqttSessionCmdlet.cs +++ b/Source/MQTTnet.PowerShell/Cmdlets/RemoveMqttSessionCmdlet.cs @@ -6,7 +6,7 @@ namespace MQTTnet.PowerShell.Cmdlets; public class RemoveMqttSessionCmdlet : PSCmdlet { [Parameter(Mandatory = true, ValueFromPipeline = true)] - public required MqttSession Session { get; set; } + public required PsMqttSession Session { get; set; } protected override void ProcessRecord() { diff --git a/Source/MQTTnet.PowerShell/Cmdlets/SubscribeMqttTopicCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/SubscribeMqttTopicCmdlet.cs index 8ad774d29..69bb570d8 100644 --- a/Source/MQTTnet.PowerShell/Cmdlets/SubscribeMqttTopicCmdlet.cs +++ b/Source/MQTTnet.PowerShell/Cmdlets/SubscribeMqttTopicCmdlet.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System.Management.Automation; +using MQTTnet.Protocol; namespace MQTTnet.PowerShell.Cmdlets; @@ -10,20 +11,44 @@ namespace MQTTnet.PowerShell.Cmdlets; [OutputType(typeof(MqttClientSubscribeResult))] public class SubscribeMqttTopicCmdlet : PSCmdlet { + [Parameter] + public bool NoLocal { get; set; } + [Parameter] public int QoS { get; set; } = 0; + [Parameter] + public bool RetainAsPublished { get; set; } + + [Parameter] + public MqttRetainHandling RetainHandling { get; set; } = MqttRetainHandling.SendAtSubscribe; + [Parameter(Mandatory = true, ValueFromPipeline = true)] - public required MqttSession Session { get; set; } + public required PsMqttSession Session { get; set; } + + [Parameter] + public uint SubscriptionIdentifier { get; set; } [Parameter(Mandatory = true)] public required string Topic { get; set; } protected override void ProcessRecord() { - var topicFilter = new MqttTopicFilterBuilder().WithTopic(Topic).Build(); + var topicFilter = new MqttTopicFilterBuilder().WithTopic(Topic) + .WithQualityOfServiceLevel((MqttQualityOfServiceLevel)QoS) + .WithNoLocal(NoLocal) + .WithRetainAsPublished(RetainAsPublished) + .WithRetainHandling(RetainHandling) + .Build(); + + var options = new MqttClientSubscribeOptionsBuilder().WithTopicFilter(topicFilter); + + if (SubscriptionIdentifier > 0) + { + options.WithSubscriptionIdentifier(SubscriptionIdentifier); + } - var response = Session.Client.SubscribeAsync(topicFilter).GetAwaiter().GetResult(); + var response = Session.GetClient().SubscribeAsync(options.Build()).GetAwaiter().GetResult(); WriteObject(response); } diff --git a/Source/MQTTnet.PowerShell/Cmdlets/UnsubscribeMqttTopicCmdlet.cs b/Source/MQTTnet.PowerShell/Cmdlets/UnsubscribeMqttTopicCmdlet.cs index 84f69cbe4..efee5fc23 100644 --- a/Source/MQTTnet.PowerShell/Cmdlets/UnsubscribeMqttTopicCmdlet.cs +++ b/Source/MQTTnet.PowerShell/Cmdlets/UnsubscribeMqttTopicCmdlet.cs @@ -7,14 +7,16 @@ namespace MQTTnet.PowerShell.Cmdlets; public class UnsubscribeMqttTopicCmdlet : PSCmdlet { [Parameter(Mandatory = true, ValueFromPipeline = true)] - public required MqttSession Session { get; set; } + public required PsMqttSession Session { get; set; } [Parameter(Mandatory = true)] public required string Topic { get; set; } protected override void ProcessRecord() { - var response = Session.Client.UnsubscribeAsync(Topic).GetAwaiter().GetResult(); + var options = new MqttClientUnsubscribeOptionsBuilder().WithTopicFilter(Topic).Build(); + + var response = Session.GetClient().UnsubscribeAsync(options).GetAwaiter().GetResult(); WriteObject(response); } diff --git a/Source/MQTTnet.PowerShell/MqttSession.cs b/Source/MQTTnet.PowerShell/MqttSession.cs deleted file mode 100644 index 014dba0aa..000000000 --- a/Source/MQTTnet.PowerShell/MqttSession.cs +++ /dev/null @@ -1,72 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.Buffers; -using System.Text; -using MQTTnet.Protocol; - -namespace MQTTnet.PowerShell; - -public sealed class MqttSession : IDisposable -{ - public MqttSession() - { - var factory = new MqttClientFactory(); - Client = factory.CreateMqttClient(); - - Client.ApplicationMessageReceivedAsync += e => - { - MessageReceived?.Invoke(this, new MqttMessage - { - Topic = e.ApplicationMessage.Topic, - Payload = Encoding.UTF8.GetString(e.ApplicationMessage.Payload), - RawPayload = e.ApplicationMessage.Payload.ToArray(), - UserProperties = e.ApplicationMessage.UserProperties, - QoS = (int)e.ApplicationMessage.QualityOfServiceLevel, - ContentType = e.ApplicationMessage.ContentType, - Retain = e.ApplicationMessage.Retain, - ResponseTopic = e.ApplicationMessage.ResponseTopic - - }); - return Task.CompletedTask; - }; - - // Client.ConnectedAsync += e => - // { - // //Connected?.Invoke(this, e); - // return Task.CompletedTask; - // }; - // - // Client.DisconnectedAsync += e => - // { - // //Disconnected?.Invoke(this, e); - // return Task.CompletedTask; - // }; - } - - // public event EventHandler Connected; - // public event EventHandler Disconnected; - public event EventHandler? MessageReceived; - - public IMqttClient Client { get; } - - public void Dispose() - { - try - { - if (Client != null) - { - if (Client.IsConnected) - { - Client.DisconnectAsync().Wait(); - } - - Client.Dispose(); - } - } - catch - { - } - } -} \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/MqttMessage.cs b/Source/MQTTnet.PowerShell/PsMqttMessage.cs similarity index 82% rename from Source/MQTTnet.PowerShell/MqttMessage.cs rename to Source/MQTTnet.PowerShell/PsMqttMessage.cs index 8a28d36aa..696362451 100644 --- a/Source/MQTTnet.PowerShell/MqttMessage.cs +++ b/Source/MQTTnet.PowerShell/PsMqttMessage.cs @@ -2,11 +2,22 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +using System.Management.Automation; using MQTTnet.Packets; namespace MQTTnet.PowerShell; -public class MqttMessage +public class PsMqttPublishResult +{ + +} + +public class PsMqttConnectResult +{ + +} + +public class PsMqttMessage { public required string? ContentType { get; init; } public required string Payload { get; init; } diff --git a/Source/MQTTnet.PowerShell/PsMqttSession.cs b/Source/MQTTnet.PowerShell/PsMqttSession.cs new file mode 100644 index 000000000..83089763c --- /dev/null +++ b/Source/MQTTnet.PowerShell/PsMqttSession.cs @@ -0,0 +1,50 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Buffers; +using System.Text; + +namespace MQTTnet.PowerShell; + +public sealed class PsMqttSession : IDisposable +{ + readonly IMqttClient _client; + + public PsMqttSession() + { + var factory = new MqttClientFactory(); + _client = factory.CreateMqttClient(); + + _client.ApplicationMessageReceivedAsync += e => + { + MessageReceived?.Invoke( + this, + new PsMqttMessage + { + Topic = e.ApplicationMessage.Topic, + Payload = Encoding.UTF8.GetString(e.ApplicationMessage.Payload), + RawPayload = e.ApplicationMessage.Payload.ToArray(), + UserProperties = e.ApplicationMessage.UserProperties, + QoS = (int)e.ApplicationMessage.QualityOfServiceLevel, + ContentType = e.ApplicationMessage.ContentType, + Retain = e.ApplicationMessage.Retain, + ResponseTopic = e.ApplicationMessage.ResponseTopic + }); + + return Task.CompletedTask; + }; + } + + public event EventHandler? MessageReceived; + + public void Dispose() + { + _client.Dispose(); + } + + public IMqttClient GetClient() + { + return _client; + } +} \ No newline at end of file From 076039abc78c62a189c439440876c76aa0725a87 Mon Sep 17 00:00:00 2001 From: christian <6939810+chkr1011@users.noreply.github.com> Date: Fri, 24 Oct 2025 17:35:12 +0200 Subject: [PATCH 3/3] Add binary files to repo for testing purposes --- .../MQTTnet.PowerShell.csproj | 9 + .../Debug/net8.0/MQTTnet.PowerShell.deps.json | 55 + .../bin/Debug/net8.0/MQTTnet.PowerShell.dll | Bin 0 -> 20992 bytes .../bin/Debug/net8.0/MQTTnet.PowerShell.pdb | Bin 0 -> 16716 bytes .../bin/Debug/net8.0/MQTTnet.dll | Bin 0 -> 248320 bytes .../bin/Debug/net8.0/MQTTnet.pdb | Bin 0 -> 124520 bytes .../bin/Debug/net8.0/MQTTnet.xml | 1182 +++++++++++++++++ 7 files changed, 1246 insertions(+) create mode 100644 Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.PowerShell.deps.json create mode 100644 Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.PowerShell.dll create mode 100644 Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.PowerShell.pdb create mode 100644 Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.dll create mode 100644 Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.pdb create mode 100644 Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.xml diff --git a/Source/MQTTnet.PowerShell/MQTTnet.PowerShell.csproj b/Source/MQTTnet.PowerShell/MQTTnet.PowerShell.csproj index cb5d0a089..5e45f70f5 100644 --- a/Source/MQTTnet.PowerShell/MQTTnet.PowerShell.csproj +++ b/Source/MQTTnet.PowerShell/MQTTnet.PowerShell.csproj @@ -16,4 +16,13 @@ + + + + + + + + + diff --git a/Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.PowerShell.deps.json b/Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.PowerShell.deps.json new file mode 100644 index 000000000..9159334b2 --- /dev/null +++ b/Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.PowerShell.deps.json @@ -0,0 +1,55 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "MQTTnet.PowerShell/1.0.0": { + "dependencies": { + "MQTTnet": "1.0.0", + "PowerShellStandard.Library": "5.1.1" + }, + "runtime": { + "MQTTnet.PowerShell.dll": {} + } + }, + "PowerShellStandard.Library/5.1.1": { + "runtime": { + "lib/netstandard2.0/System.Management.Automation.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "5.1.1.0" + } + } + }, + "MQTTnet/1.0.0": { + "runtime": { + "MQTTnet.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "MQTTnet.PowerShell/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "PowerShellStandard.Library/5.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-e31xJjG+Kjbv6YF3Yq6D4Dl3or8v7LrNF41k3CXrWozW6hR1zcOe5KYuZJaGSiAgLnwP8wcW+I3+IWEzMPZKXQ==", + "path": "powershellstandard.library/5.1.1", + "hashPath": "powershellstandard.library.5.1.1.nupkg.sha512" + }, + "MQTTnet/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.PowerShell.dll b/Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.PowerShell.dll new file mode 100644 index 0000000000000000000000000000000000000000..d6185832d6aca61d73ba5d903bc90c1d19afa1e8 GIT binary patch literal 20992 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 E1--=5>Hq)$ literal 0 HcmV?d00001 diff --git a/Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.PowerShell.pdb b/Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.PowerShell.pdb new file mode 100644 index 0000000000000000000000000000000000000000..8c86d2d4535d7380c959849c1d2e925df2b68cbf GIT binary patch literal 16716 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 z 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 GDEi-ognf_z literal 0 HcmV?d00001 diff --git a/Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.xml b/Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.xml new file mode 100644 index 000000000..9176cb5c0 --- /dev/null +++ b/Source/MQTTnet.PowerShell/bin/Debug/net8.0/MQTTnet.xml @@ -0,0 +1,1182 @@ + + + + MQTTnet + + + +

+ Gets the authentication result. + MQTT 5.0.0+ feature. + + + + + Gets the client identifier which was chosen by the server. + MQTTv5 only. + + + + + Gets the authentication data. + MQTTv5 only. + + + + + Gets the authentication method. + MQTTv5 only. + + + + + Gets a value indicating whether a session was already available or not. + + + + + Gets the maximum QoS which is supported by the server. + MQTTv5 only. + + + + + Gets the reason string. + MQTTv5 only. + + + + + Gets the response information. + MQTTv5 only. + + + + + Gets the result code. + + + + + Gets whether the server supports retained messages. + MQTTv5 only. + + + + + MQTTv5 only. + Gets the keep alive interval which was chosen by the server instead of the + keep alive interval from the client CONNECT packet. + A value of 0 indicates that the feature is not used. + + + + + Gets an alternate server which should be used instead of the current one. + MQTTv5 only. + + + + + Gets a value indicating whether the shared subscriptions are available or not. + MQTTv5 only. + + + + + Gets a value indicating whether the subscription identifiers are available or not. + MQTTv5 only. + + + + + Gets the maximum value for a topic alias. 0 means not supported. + MQTTv5 only. + + + + + Gets the user properties. + In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT + packet. + As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add + metadata to MQTT messages and pass information between publisher, broker, and subscriber. + The feature is very similar to the HTTP header concept. + MQTTv5 only. + + + + + Gets a value indicating whether wildcards can be used in subscriptions at the current server. + MQTTv5 only. + + + + + This logger fires an event when a new message was published. + + + + + This logger fires an event when a new message was published. + + + + + This logger does nothing with the messages. + + + + + Gets the authentication result. + MQTT 5.0.0+ feature. + + + + + Gets or sets the reason. + MQTT 5.0.0+ feature. + + + + + Gets or sets the reason code. + MQTT 5.0.0+ feature. + + + + + Gets or sets the reason string. + MQTT 5.0.0+ feature. + + + + + Gets or sets the session expiry interval. + MQTT 5.0.0+ feature. + + + + + Gets or sets the user properties. + MQTT 5.0.0+ feature. + + + + + This enum only contains values which are valid when a client sends the reason to the server. + + + + + This is a custom implementation of a memory stream which provides only MQTTnet relevant features. + The goal is to avoid lots of argument checks like in the original stream. The growth rule is the + same as for the original MemoryStream in .net. Also this implementation allows accessing the internal + buffer for all platforms and .net framework versions (which is not available at the regular MemoryStream). + + + + + Gets or sets the content type. + The content type must be a UTF-8 encoded string. The content type value identifies the kind of UTF-8 encoded + payload. + + + + + Gets or sets the correlation data. + In order for the sender to know what sent message the response refers to it can also send correlation data with the + published message. + Hint: MQTT 5 feature only. + + + + + If the DUP flag is set to 0, it indicates that this is the first occasion that the Client or Server has attempted + to send this MQTT PUBLISH Packet. + If the DUP flag is set to 1, it indicates that this might be re-delivery of an earlier attempt to send the Packet. + The DUP flag MUST be set to 1 by the Client or Server when it attempts to re-deliver a PUBLISH Packet + [MQTT-3.3.1.-1]. + The DUP flag MUST be set to 0 for all QoS 0 messages [MQTT-3.3.1-2]. + + + + + Gets or sets the message expiry interval. + A client can set the message expiry interval in seconds for each PUBLISH message individually. + This interval defines the period of time that the broker stores the PUBLISH message for any matching subscribers + that are not currently connected. + When no message expiry interval is set, the broker must store the message for matching subscribers indefinitely. + When the retained=true option is set on the PUBLISH message, this interval also defines how long a message is + retained on a topic. + Hint: MQTT 5 feature only. + + + + + Set an ArraySegment as Payload. + + + + + Get or set ReadOnlySequence style of Payload. + This payload type is used internally and is recommended for public use. + It can be used in combination with a RecyclableMemoryStream to publish + large buffered messages without allocating large chunks of memory. + + + + + Gets or sets the payload format indicator. + The payload format indicator is part of any MQTT packet that can contain a payload. The indicator is an optional + byte value. + A value of 0 indicates an “unspecified byte stream”. + A value of 1 indicates a "UTF-8 encoded payload". + If no payload format indicator is provided, the default value is 0. + Hint: MQTT 5 feature only. + + + + + Gets or sets the quality of service level. + The Quality of Service (QoS) level is an agreement between the sender of a message and the receiver of a message + that defines the guarantee of delivery for a specific message. + There are 3 QoS levels in MQTT: + - At most once (0): Message gets delivered no time, once or multiple times. + - At least once (1): Message gets delivered at least once (one time or more often). + - Exactly once (2): Message gets delivered exactly once (It's ensured that the message only comes once). + + + + + Gets or sets the response topic. + In MQTT 5 the ability to publish a response topic was added in the publish message which allows you to implement + the request/response pattern between clients that is common in web applications. + Hint: MQTT 5 feature only. + + + + + Gets or sets a value indicating whether the message should be retained or not. + A retained message is a normal MQTT message with the retained flag set to true. + The broker stores the last retained message and the corresponding QoS for that topic. + + + + + Gets or sets the subscription identifiers. + The client can specify a subscription identifier when subscribing. + The broker will establish and store the mapping relationship between this subscription and subscription identifier + when successfully create or modify subscription. + The broker will return the subscription identifier associated with this PUBLISH packet and the PUBLISH packet to + the client when need to forward PUBLISH packets matching this subscription to this client. + Hint: MQTT 5 feature only. + + + + + Gets or sets the MQTT topic. + In MQTT, the word topic refers to an UTF-8 string that the broker uses to filter messages for each connected + client. + The topic consists of one or more topic levels. Each topic level is separated by a forward slash (topic level + separator). + + + + + Gets or sets the topic alias. + Topic aliases were introduced are a mechanism for reducing the size of published packets by reducing the size of + the topic field. + A value of 0 indicates no topic alias is used. + Hint: MQTT 5 feature only. + + + + + Gets or sets the user properties. + In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT + packet. + As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add + metadata to MQTT messages and pass information between publisher, broker, and subscriber. + The feature is very similar to the HTTP header concept. + Hint: MQTT 5 feature only. + + + + + Adds the content type to the message. + MQTT 5.0.0+ feature. + + + + + Adds the correlation data to the message. + MQTT 5.0.0+ feature. + + + + + Adds the message expiry interval in seconds to the message. + MQTT 5.0.0+ feature. + + + + + Adds the payload format indicator to the message. + MQTT 5.0.0+ feature. + + + + + The quality of service level. + The Quality of Service (QoS) level is an agreement between the sender of a message and the receiver of a message + that defines the guarantee of delivery for a specific message. + There are 3 QoS levels in MQTT: + - At most once (0): Message gets delivered no time, once or multiple times. + - At least once (1): Message gets delivered at least once (one time or more often). + - Exactly once (2): Message gets delivered exactly once (It's ensured that the message only comes once). + + + + + Adds the response topic to the message. + MQTT 5.0.0+ feature. + + + + + A value indicating whether the message should be retained or not. + A retained message is a normal MQTT message with the retained flag set to true. + The broker stores the last retained message and the corresponding QoS for that topic. + + + + + Adds the subscription identifier to the message. + MQTT 5.0.0+ feature. + + + + + The MQTT topic. + In MQTT, the word topic refers to an UTF-8 string that the broker uses to filter messages for each connected + client. + The topic consists of one or more topic levels. Each topic level is separated by a forward slash (topic level + separator). + + + + + Adds the topic alias to the message. + MQTT 5.0.0+ feature. + + + + + Adds the user property to the message. + MQTT 5.0.0+ feature. + + + + + The quality of service level. + The Quality of Service (QoS) level is an agreement between the sender of a message and the receiver of a message that defines the guarantee of delivery for a specific message. + There are 3 QoS levels in MQTT: + - At most once (0): Message gets delivered no time, once or multiple times. + - At least once (1): Message gets delivered at least once (one time or more often). + - Exactly once (2): Message gets delivered exactly once (It's ensured that the message only comes once). + + + + + The MQTT topic. + In MQTT, the word topic refers to an UTF-8 string that the broker uses to filter messages for each connected client. + The topic consists of one or more topic levels. Each topic level is separated by a forward slash (topic level separator). + + + + + Usually the MQTT packets can be sent partially. This is done by using multiple TCP packets + or WebSocket frames etc. Unfortunately not all brokers (like Amazon Web Services (AWS)) do support this feature and + will close the connection when receiving such packets. If such a service is used this flag must + be set to _false_. + + + + + Gets or sets the authentication data. + MQTT 5.0.0+ feature. + + + + + Gets or sets the authentication method. + MQTT 5.0.0+ feature. + + + + + Gets or sets a value indicating whether clean sessions are used or not. + When a client connects to a broker it can connect using either a non persistent connection (clean session) or a + persistent connection. + With a non-persistent connection the broker doesn't store any subscription information or undelivered messages for + the client. + This mode is ideal when the client only publishes messages. + It can also connect as a durable client using a persistent connection. + In this mode, the broker will store subscription information, and undelivered messages for the client. + + + + + Gets the client identifier. + Hint: This identifier needs to be unique over all used clients / devices on the broker to avoid connection issues. + + + + + Gets or sets the handler for AUTH packets. + This can happen when connecting or at any time while being already connected. + MQTT 5.0.0+ feature. + + + + + Gets or sets the keep alive period. + The connection is normally left open by the client so that is can send and receive data at any time. + If no data flows over an open connection for a certain time period then the client will generate a PINGREQ and + expect to receive a PINGRESP from the broker. + This message exchange confirms that the connection is open and working. + This period is known as the keep alive period. + + + + + Gets or sets the maximum packet size. + MQTT 5.0.0+ feature. + + + + + Gets or sets the protocol version. + Default: 5.0.0. + + + + + Gets or sets the receive maximum. + This gives the maximum length of the received messages. + MQTT 5.0.0+ feature. + + + + + Gets or sets the request problem information. + MQTT 5.0.0+ feature. + + + + + Gets or sets the request response information. + MQTT 5.0.0+ feature. + + + + + Gets or sets the session expiry interval. + The time after a session expires when it's not actively used. + MQTT 5.0.0+ feature. + + + + + Gets or sets the timeout which will be applied at socket level and internal operations. + The default value is the same as for sockets in .NET in general. + + + + + Gets or sets the topic alias maximum. + This gives the maximum length of the topic alias. + MQTT 5.0.0+ feature. + + + + + If set to true, the bridge will attempt to indicate to the remote broker that it is a bridge not an ordinary + client. + If successful, this means that loop detection will be more effective and that retained messages will be propagated + correctly. + + Not all brokers support this feature so it may be necessary to set it to false if your bridge does not + connect properly. + + + + + + Gets or sets the user properties. + In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT + packet. + As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add + metadata to MQTT messages and pass information between publisher, broker, and subscriber. + The feature is very similar to the HTTP header concept. + MQTT 5.0.0+ feature. + + + + + When this feature is enabled the client will check if used properties are supported in the selected protocol + version. + This feature can be validated if an application message is generated one time but sent via different protocol + versions. + Default values are applied if the validation is off and features are not supported. + + + + + Gets or sets the content type of the will message. + MQTT 5.0.0+ feature. + + + + + Gets or sets the correlation data of the will message. + MQTT 5.0.0+ feature. + + + + + Gets or sets the will delay interval. + This is the time between the client disconnect and the time the will message will be sent. + MQTT 5.0.0+ feature. + + + + + Gets or sets the message expiry interval of the will message. + MQTT 5.0.0+ feature. + + + + + Gets or sets the payload of the will message. + + + + + Gets or sets the payload format indicator of the will message. + MQTT 5.0.0+ feature. + + + + + Gets or sets the QoS level of the will message. + + + + + Gets or sets the response topic of the will message. + MQTT 5.0.0+ feature. + + + + + Gets or sets the retain flag of the will message. + + + + + Gets or sets the topic of the will message. + + + + + Gets or sets the user properties of the will message. + MQTT 5.0.0+ feature. + + + + + Gets or sets the default and initial size of the packet write buffer. + It is recommended to set this to a value close to the usual expected packet size * 1.5. + Do not change this value when no memory issues are experienced. + + + + + Gets or sets the maximum size of the buffer writer. The writer will reduce its internal buffer + to this value after serializing a packet. + Do not change this value when no memory issues are experienced. + + + + + Clean session is used in MQTT versions below 5.0.0. It is the same as setting "CleanStart". + + + + + Clean start is used in MQTT versions 5.0.0 and higher. It is the same as setting "CleanSession". + + + + + Usually the MQTT packets can be sent partially. This is done by using multiple TCP packets + or WebSocket frames etc. Unfortunately not all brokers (like Amazon Web Services (AWS)) do support this feature and + will close the connection when receiving such packets. If such a service is used this flag must + be set to _true_. + + + + + Sets the timeout which will be applied at socket level and internal operations. + The default value is the same as for sockets in .NET in general. + + + + + If set to true, the bridge will attempt to indicate to the remote broker that it is a bridge not an ordinary + client. + If successful, this means that loop detection will be more effective and that retained messages will be propagated + correctly. + Not all brokers support this feature so it may be necessary to set it to false if your bridge does not connect + properly. + + + + + Gets or sets whether the underlying socket should run in dual mode. + Leaving this _null_ will avoid setting this value at socket level. + Setting this a value other than _null_ will throw an exception when only IPv4 is supported on the machine. + + + + + Gets the local endpoint (network card) which is used by the client. + Set it to _null_ to let the OS select the network card. + + + + + Enables or disables the Nagle algorithm for the socket. + This is only supported for TCP. + For other protocol types the value is ignored. + Default: true + + + + + The MQTT transport is usually TCP but when using other endpoint types like + unix sockets it must be changed (IP for unix sockets). + + + + + Gets or sets the provider for certificates. + This provider gets called whenever the client wants to connect + with the server and requires certificates for authentication. + The implementation may return different certificates each time. + + + + + Gets or sets the target host. + If the value is null or empty the same host as the TCP socket host will be used. + + + + + Gets or sets the keep alive interval for the Web Socket connection. + This is not related to the keep alive interval for the MQTT protocol. + + + + + Gets or sets whether the default (system) credentials should be used when connecting via Web Socket connection. + This is not related to the credentials which are used for the MQTT protocol. + + + + + Allows the client to negotiate deflate compression on every message, by using the permessage-deflate WebSocket extension. + This adds the Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits header. + + + + + + + Gets the authentication data. + Hint: MQTT 5 feature only. + + + + + Gets the authentication method. + Hint: MQTT 5 feature only. + + + + + Gets the reason code. + Hint: MQTT 5 feature only. + + + + + Gets the reason string. + Hint: MQTT 5 feature only. + + + + + Gets the user properties. + In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT + packet. + As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add + metadata to MQTT messages and pass information between publisher, broker, and subscriber. + The feature is very similar to the HTTP header concept. + Hint: MQTT 5 feature only. + + + + + Gets or sets the authentication data. + Authentication data is binary information used to transmit multiple iterations of cryptographic secrets of protocol + steps. + The content of the authentication data is highly dependent on the specific implementation of the authentication + method. + Hint: MQTT 5 feature only. + + + + + Gets or sets the reason code. + Hint: MQTT 5 feature only. + + + + + Gets or sets the reason string. + Hint: MQTT 5 feature only. + + + + + Gets or sets the user properties. + In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT + packet. + As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add + metadata to MQTT messages and pass information between publisher, broker, and subscriber. + The feature is very similar to the HTTP header concept. + Hint: MQTT 5 feature only. + + + + Added in MQTTv5.0.0. + + + + Added in MQTTv5. + + + + + Added in MQTTv3.1.1. + + + + + Added in MQTTv5. + + + + + Also called "Clean Start" in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Reason Code is used in MQTTv5.0.0 and backward compatible to v.3.1.1. Return Code is used in MQTTv3.1.1 + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + It is a Protocol Error if the Subscription Identifier has a value of 0. + + + + + Added in MQTTv5. + + + + + Gets or sets a value indicating whether the sender will not receive its own published application messages. + MQTT 5.0.0+ feature. + + + + + Gets or sets the quality of service level. + The Quality of Service (QoS) level is an agreement between the sender of a message and the receiver of a message + that defines the guarantee of delivery for a specific message. + There are 3 QoS levels in MQTT: + - At most once (0): Message gets delivered no time, once or multiple times. + - At least once (1): Message gets delivered at least once (one time or more often). + - Exactly once (2): Message gets delivered exactly once (It's ensured that the message only comes once). + + + + + Gets or sets a value indicating whether messages are retained as published or not. + MQTT 5.0.0+ feature. + + + + + Gets or sets the retain handling. + MQTT 5.0.0+ feature. + + + + + Gets or sets the MQTT topic. + In MQTT, the word topic refers to an UTF-8 string that the broker uses to filter messages for each connected + client. + The topic consists of one or more topic levels. Each topic level is separated by a forward slash (topic level + separator). + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + Added in MQTTv5. + + + + + The message is accepted but there are no subscribers. This is sent only by the Server. If the Server knows that there are no matching subscribers, it MAY use this Reason Code instead of 0x00 (Success). + + + + + Returns if the overall status of the publish is a success. This can be the reason code _Success_ or + _NoMatchingSubscribers_. _NoMatchingSubscribers_ usually indicates only that no other client is interested in the + topic but overall transmit + to the server etc. was a success. + + + + + Gets the packet identifier which was used for this publish. + + + + + Gets or sets the reason code. + MQTT 5.0.0+ feature. + + + + + Gets or sets the reason string. + MQTT 5.0.0+ feature. + + + + + Gets or sets the user properties. + In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT + packet. + As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add + metadata to MQTT messages and pass information between publisher, broker, and subscriber. + The feature is very similar to the HTTP header concept. + MQTT 5.0.0+ feature. + + + + + Gets or sets whether the library should send MQTT ACK packets automatically if required. + + + + + Gets the client identifier. + Hint: This identifier needs to be unique over all used clients / devices on the broker to avoid connection issues. + + + + + Gets or sets whether this message was handled. + This value can be used in user code for custom control flow. + + + + + Gets the identifier of the MQTT packet + + + + + Indicates if the processing of this PUBLISH packet has failed. + If the processing has failed the client will not send an ACK packet etc. + + + + + Gets or sets the reason code which will be sent to the server. + + + + + Gets or sets the reason string which will be sent to the server in the ACK packet. + + + + + Gets or sets the user properties which will be sent to the server in the ACK packet etc. + + + + + Gets or sets the subscription identifier. + The client can specify a subscription identifier when subscribing. + The broker will establish and store the mapping relationship between this subscription and subscription identifier + when successfully create or modify subscription. + The broker will return the subscription identifier associated with this PUBLISH packet and the PUBLISH packet to + the client when need to forward PUBLISH packets matching this subscription to this client. + MQTT 5.0.0+ feature. + + + + + Gets or sets a list of topic filters the client wants to subscribe to. + Topic filters can include regular topics or wild cards. + + + + + Gets or sets the user properties. + In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT + packet. + As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add + metadata to MQTT messages and pass information between publisher, broker, and subscriber. + The feature is very similar to the HTTP header concept. + MQTT 5.0.0+ feature. + + + + + Adds the user property to the subscribe options. + MQTT 5.0.0+ feature. + + + + + Gets the result for every topic filter item. + + + + + Gets the packet identifier which was used. + + + + + Gets the reason string. + MQTT 5.0.0+ feature. + + + + + Gets the user properties which were part of the SUBACK packet. + MQTT 5.0.0+ feature. + + + + + Gets or sets the result code. + MQTT 5.0.0+ feature. + + + + + Gets or sets the topic filter. + The topic filter can contain topics and wildcards. + + + + + Gets or sets a list of topic filters the client wants to unsubscribe from. + Topic filters can include regular topics or wild cards. + + + + + Gets or sets the user properties. + In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT + packet. + As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add + metadata to MQTT messages and pass information between publisher, broker, and subscriber. + The feature is very similar to the HTTP header concept. + MQTT 5.0.0+ feature. + + + + + Adds the user property to the unsubscribe options. + MQTT 5.0.0+ feature. + + + + + Adds the user property to the unsubscribe options. + MQTT 5.0.0+ feature. + + + + + Gets the result for every topic filter item. + + + + + Gets the packet identifier which was used. + + + + + Gets the reason string. + MQTT 5.0.0+ feature. + + + + + Gets the user properties which were part of the UNSUBACK packet. + MQTT 5.0.0+ feature. + + + + + Gets or sets the result code. + MQTT 5.0.0+ feature. + + + + + Gets or sets the topic filter. + The topic filter can contain topics and wildcards. + + + +