MQTTnet Versions Save

MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker). The implementation is based on the documentation from http://mqtt.org/.

v4.1.1.318

1 year ago
  • [Core] MQTT Packets being sent over web socket transport are now setting the web socket frame boundaries correctly (#1499).
  • [Core] Add support for attaching and detaching events from different threads.
  • [Core] Fixed a deadlock in AsyncLock implementation (#1520).
  • [Client] Keep alive mechanism now uses the configured timeout value from the options (thanks to @Stannieman, #1495).
  • [Client] The PingAsync will fallback to the timeout specified in the client options when the cancellation token cannot be cancelled.
  • [Server] A DISCONNECT packet is no longer sent to MQTT clients < 5.0.0 (thanks to @logicaloud, #1506).
  • [Server] Improved "take over" process handling.

v4.1.0.247

1 year ago
  • [Core] Fixed not working removal of event handlers from async events (#1479).
  • [Client] Added support for passing the local endpoint (network card) which should be used (#1311).
  • [Client] Exposed PackageIdentifier in MqttApplicationMessageReceivedEventArgs (thanks to @koepalex, #1466).
  • [Server] Added a new event (ClientAcknowledgedPublishPacketAsync) which is fired whenever a client acknowledges a PUBLISH packet (QoS 1 and 2, #487).
  • [Server] Exposed channel adapter (HTTP context etc.) in connection validation (#1125).
  • [Server] The event InterceptingPublishAsync is now also called for injected application messages (#1470).
  • [Server] Exposed session items in multiple events (#1291).

v4.0.2.221

1 year ago
  • [Core] Updated nuget packages.
  • [Core] The option IgnoreCertificateChainErrors is now respected (thanks to @GodVenn, #1447).
  • [ManagedClient] The managed client now sends the entire topic filter including new MQTTv5 properties when subscribing.
  • [ManagedClient] Fixed wrong firing of ApplicationMessageSkippedAsync event (thanks to @quackgizmo, #1460).
  • [Server] Fixed reporting of MaximumQoS in ConnAck packet (MQTTv5 only) (#1442).
  • [Server] Fix cross thread issue in session message storage for QoS 1 and 2.
  • [Server] The event ClientSubscribedTopicAsync is now fired after the subscription is completely processed internally (#1435).
  • [Server] Improved CPU usage on lower end machines (#788).

v4.0.1.184

1 year ago
  • [Client] Added the flag try_private (MQTT 3.1.1 Bridge) to client options (#1413).
  • [Client] Fixed MQTTv5 protocol violation in PUBLISH packets (#1423).
  • [Client] Added missing "WithWill..." methods in MqttClientOptionsBuilder.
  • [ManagedClient] Fixed wrong event args type for connected and disconnected events (#1432).
  • [Server] Fixed wrong handling of retained messages with QoS > 0 (#1434).
  • [Server] Connections with try_private flag (MQTT 3.1.1 Bridge) are now accepted (#1413).

v4.0.0.167

1 year ago

We have joined the .NET Foundation! Version 4 comes with a new API so a lot of breaking changes should be expected. Checkout the upgrade guide (https://github.com/dotnet/MQTTnet/wiki/Upgrading-guide) for an overview of the changes. Checkout the new samples (https://github.com/dotnet/MQTTnet/tree/master/Samples) how to use the new API. The wiki only remains for version 3 of this library. Preview builds of this library are available at: https://www.myget.org/feed/mqttnet/package/nuget/MQTTnet

[Core] Improved memory management when working with large payloads. [Core] Added support for .NET 6.0. [Core] nuget packages are now created by MSBuild including more information (i.e. commit hash). [Client] Exposed socket linger state in options. [Client] The OS will now choose the best TLS version to use. It is no longer fixed to 1.3 etc. (thanks to @patagonaa, #1271). [Client] Added support for ServerKeepAlive (MQTTv5). [Client] Exposed user properties and reason string in subscribe result. [Client] Exposed user properties and reason string in unsubscribe result. [Client] Migrated application message handler to a regular .NET event (BREAKING CHANGE!). [Client] The will message is longer a regular application message due to not supported properties by the will message (BREAKING CHANGE!). [Client] Timeouts are no longer handled inside the library. Each method (Connect, Publish etc.) supports a cancellation token so that custom timeouts can and must be used (BREAKING CHANGE!). [Client] Exposed certificate revocation mode on options (@andyolivares). [Server] Exposed socket linger state in options. [Server] Added support for returning individual subscription errors (#80 thanks to @jimch) [Server] Improved topic filter comparisons (support for $). [Server] Added more MQTTv5 response information to all interceptors (BREAKING CHANGE!). [Server] Improved session management for MQTT v5 (#1294, thanks to @logicaloud). [Server] All interceptors and events are migrated from interfaces to simple events. All existing APIs are availble but must be migrated to corresponding events (BREAKING CHANGE!). [Server] Removed all interceptor and event interfaces including the delegate implementations etc. (BREAKING CHANGE!). [Server] Renamed a lot of classes and adjusted namespaces (BREAKING CHANGE!). [Server] Introduced a new queueing approach for internal message process (packet bus). [Server] For security reasons the default endpoint (1883) is no longer enabled by default (BREAKING CHANGE!). [Server] Added support for choosing the cipher suite (thanks to @TimSiefert). [Nuget] Added method summaries etc. to nuget packages (thanks to @SpringHgui).

v3.1.2

2 years ago
  • [Client] Increased delay for keep alive checks do decrease CPU load.
  • [Core] Decreased object allocations (#1324, thanks to @gfoidl).
  • [Core] Decreased object allocations when logging is not active (thanks to @gfoidl, @Tymoniden).
  • [Client] Fixed issue in MqttApplicationMessageBuilder.WithPayload (#1322, thanks to @gfoidl).

v4.0.0-preview1

2 years ago
  • [Core] Improved memory management when working with large payloads.
  • [Core] Added support for .NET 6.0.
  • [Core] nuget packages are now created by MSBuild including more information (i.e. commit hash).
  • [Client] The OS will now choose the best TLS version to use. It is no longer fixed to 1.3 etc. (thanks to @patagonaa, #1271).
  • [Client] Exposed user properties and reason string in subscribe result.
  • [Client] Exposed user properties and reason string in unsubscribe result.
  • [Server] Added support for returning individual subscription errors (#80 thanks to @jimch)
  • [Server] Improved topic filter comparisons (support for $).
  • [Server] Added more MQTTv5 response information to all interceptors (BREAKING CHANGE!).
  • [Server] Improved session management for MQTT v5 (#1294, thanks to @logicaloud).
  • [Server] All interceptors and events are migrated from interfaces to simple events. All existing APIs are availble but must be migrated to corresponding events (BREAKING CHANGE!).
  • [Server] Removed all interceptor and event interfaces including the delegate implementations etc. (BREAKING CHANGE!).
  • [Server] Renamed a lot of classes and adjsuted namespaces (BREAKING CHANGE!).
  • [Server] Introduced a new queueing approach for internal message process (packet bus).

v3.1.1

2 years ago
  • [Core] Removed IDisposable from MqttClientConnection.cs (#1284).
  • [Core] Improved message of timeout exception (#1302, thanks to @patagonaa).
  • [RpcClient] Filling response topic when using MQTTv5. (#1295, thanks to @MD-V).
  • [Server] Fixed 'SessionIsPresent' handling for MQTTv5 (#1300, thanks to @logicaloud).
  • [Server] Improved session management for MQTTv5 (#1294, thanks to @logicaloud).

v3.1.0

2 years ago
  • [Core] Added all builders to the MQTT factory.
  • [Core] Removed global logger and refactored logging (BREAKING CHANGE!).
  • [Client] Renamed MqttClientAuthenticateResult to MqttClientConnectResult (BREAKING CHANGE!).
  • [ManagedClient] Extended ReconnectAsync (thanks to @nvsnkv, #1202).
  • [ManagedClient] Improved Amazon AWS support (thanks to @scottbrogden-iheartmedia, #1209).
  • [ManagedClient] Fixed bug that allowed invalid subscriptions (Thanks to @marcelwinh).
  • [Server] Added support for RetainHandling (MQTTv5, BREAKING CHANGE!).
  • [Server] Added support for NoLocal (MQTTv5, BREAKING CHANGE!).
  • [Server] Added support for SubscriptionIdentifier (MQTTv5, BREAKING CHANGE!).
  • [Server] Server now reports supported features properly after successful connection (MQTTv5, BREAKING CHANGE!).
  • [Server] Fixed a memory/performance leak when using QoS Level 1.
  • [Server] Exposed connection timestamp in client status.
  • [Server] Refactored connection management code.
  • [Server] Exposed more details in MqttServerClientConnectedEventArgs.
  • [Server] Processing all pending messages before stopping (thanks to @AblEdge, #1234).
  • [Server] Added support for a custom exception handler in MqttServerMultiThreadedApplicationMessageInterceptorDelegate.
  • [Server] Removed logger from MqttServerMultiThreadedApplicationMessageInterceptorDelegate (BREAKING CHANGE!).
  • [Server] Fixed a memory leak when deleting sessions.
  • [Server] Fixed timestamp check in server keep-alive monitor (thanks to @logicaloud, #1277).
  • [MQTTnet.Server] Moved server project to a dedicated GitHub repository.

This version was released as 3.0.17 before which is wrong!

v3.0.16

2 years ago
  • [Core] Fixed DISCONNECT packet reading for protocol version 3.1.0.DisconnectPacket
  • [Client] Added support for deferred message approval (#1075, thanks to @tkurucsai).
  • [Client] Exposed missing APIs for .NET 5.0 build (thanks to @yyjdelete).
  • [Client] Improved disconnect handling (#1134, thanks to @yyjdelete).
  • [Client] Fix TLS parameter options builder (#1104).
  • [Server] Add new overload for options builder.
  • [Server] Exposed endpoint in MqttServerClientDisconnectedEventArgs.
  • [Server] Remove client disconnected handler from wrong implementation location (BREAKING CHANGE).