Skip to content

Releases: dotnet/MQTTnet

v2.8.0

02 Jul 19:49
Compare
Choose a tag to compare

** MQTTnet is now available at Open Collective for donations (https://opencollective.com/mqttnet). **

  • [Core] Performance optimizations.
  • [Core] Due to performance reasons the timestamp of log messages is now in UTC format.
  • [Core] Added several packet validations.
  • [Core] Log messages now contain the complete source path including parent components.
  • [Core] The adapter now has an Endpoint definition as string containing remote IP and port.
  • [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).
  • [ManagedClient] Added a new event which is fired when a synchronization of the subscriptions has failed.
  • [ManagedClient] Added a new event which is fired when a connection attempt has failed.
  • [ManagedClient] Exposed a new property which provides the count of not published messages (pending messages count).
  • [Server] Added support for other WebSocket sub protocol formats like mqttv-3.1.1 (thanks to @israellot).
  • [Server] The takeover of an existing client sessions is now treated as a clean disconnect of the previous client.
  • [Server] The pending messages queue per client is now limited to 250 messages. Overflow strategy and count can be changed via options (thanks to @VladimirAkopyan)
  • [Server] Keep alive checking is now suspended while large packages are being received (and thus the client is connected). Keep alive checking continues after a large packet is received completely.
  • [Server] Rewritten the ConnectedClients API and added new features for disconnecting and Endpoint information (IP etc.).
  • [Server] Added settings for disabling persistent sessions and defining a max pending messages queue size per session.
  • [Server] Persistent sessions are disabled by default (BREAKING CHANGE!).
  • [Server] Added a new interceptor which is invoked before a new message is added to the client queue.
  • [Server] Added support for Linux servers by dividing IPv4 and IPv6 support and adding new options (BREAKING CHANGE!).
  • [Server] Gracefully closed connections are no longer reported as warnings.
  • [Server] Added new overloads for initializing the ASP.NET Core integration.

v2.7.5

04 Jun 20:43
782dcff
Compare
Choose a tag to compare
  • [Client] Fixed a deadlock while the client disconnects.
  • [Client] Fixed broken support for protocol version 3.1.0.
  • [Server] The MqttTcpServerAdapter is now added to the ASP.NET services.
  • [Server] MqttServerAdapter is renamed to MqttTcpServerAdapter (BREAKING CHANGE!).
  • [Server] The server no longer sends the will message of a client if the disconnect was clean (via Disconnect packet).
  • [Server] The application message interceptor now allows closing the connection.
  • [Server] Added a new flag for the ClientDisconnected event which contains a value indicating whether the disconnect was clean (via Disconnect packet).

v2.7.4

11 Apr 19:24
Compare
Choose a tag to compare
  • [Client] Fixed a deadlock while the client disconnects.
  • [Client] Fixed broken support for protocol version 3.1.0.
  • [Server] The MqttTcpServerAdapter is now added to the ASP.NET services.
  • [Server] MqttServerAdapter is renamed to MqttTcpServerAdapter (BREAKING CHANGE!).
  • [Server] The server no longer sends the will message of a client if the disconnect was clean (via Disconnect packet).
  • [Server] The application message interceptor now allows closing the connection.
  • [Server] Added a new flag for the ClientDisconnected event which contains a value indicating whether the disconnect was clean (via Disconnect packet).

v2.7.3

04 Apr 19:20
Compare
Choose a tag to compare
  • [Core] Add several new extension methods.
  • [Client] Fixed an issue in ManagedMqttClientOptionsBuilder when using WithClientOptions and an options builder.
  • [Client] Added the "IsStarted" property for the managed client.
  • [Client] Optimized stream buffer for UWP apps.
  • [Client] Added the BufferSize to the TCP options.
  • [Client] Fixed a race condition which leads to exceptions when reconnecting rapidly.
  • [Server] Fixed a race condition which leads to exceptions when clients are reconnecting rapidly.
  • [Core] Fixed some issues in stream and socket handling.

v2.7.2

29 Mar 20:26
Compare
Choose a tag to compare
  • [Client] Added the subprotocol "mqtt" as default for web socket based connections.
  • [Client] Added a new client setting called "KeepAliveSendInterval". It allows configuring the effective interval for sending ping requests.
  • [Client] The client will no longer send ping requests if other packets are sent within the configured interval.
  • [Server] The server now generates a valid packet identifier when disaptching publish packets to clients.
  • [Core] Add several new extension methods.

v2.7.1

13 Mar 19:26
Compare
Choose a tag to compare
  • [Core] Fixed wrong parsing of ConnAck packet for protocol version 3.1.0.
  • [Core] Log messages are now overriding ToString() and providing a ready to use text representation.
  • [Client] Optimized package dispatcher and added several new exceptions.
  • [Client] The ManagedClient now has an event which is fired after a queued application message was processed (including exception).
  • [Client] The ManagedClient now supports unsubscribing (thanks to @lerppana)
  • [Server] Fixed some minor async issues.
  • [Server] Fixed wrong comparison of the topic and QoS for retained messages.
  • [Server] Added a property which provides access to the used options (read only).
  • [Server] Fixed a null ref expection when using an interceptor and publishing via the server directly.

v2.7.0

04 Feb 19:11
Compare
Choose a tag to compare
  • [Core] Fixed some still thread blocking parts in the code (thanks to @kpreisser).
  • [Core] Updated 3rd-Party packages.
  • [Core] Fixed wrong packet identifier calculation (thanks to @benpittoors).
  • [Core] Fixed an issue when reading the body of a package from a disconnected sender (thanks to @kpreisser).
  • [Core] Fixed wrong parsing of the body length (thanks to @kpreisser).
  • [Client] The client interfaces are now implementing IDisposable.
  • [Client] The disconnected event now contains the exception which was thrown and causing the disconnect.
  • [Server] Fixed an issue which lets the server block 1 second after accepting a new connection (thanks to @kpreisser).
  • [Server] The server now allows managing client subscriptions.
  • [Server] Added events for topic subscriptions.

v2.6.0

31 Jan 20:04
Compare
Choose a tag to compare
  • [Core] Merged projects (BREAKING CHANGE! But only namespace changes).
  • [Core] Added a strong name for the assembly.
  • [Core] Performance optimizations.
  • [Core] Fixed a logging issue when dealing with IOExceptions.
  • [Core] Fixed a typo in the global logger class (BREAKING CHANGE! Please find new example in Wiki).
  • [Core] Added support for project compilation under macOS (Thanks to @FourOnes).
  • [Client] The certificate for encryption is now loaded as a X509Certificate2 which prodives more data (Thanks to @cvellan).
  • [Client] Fixed an issue in ManagedClient which can cause the client to stop when publishing subscriptions.
  • [Client] Fixed an issue in ManagedClient which prevents changing the QoS of an existing subscription (BREAKING CHANGE!).
  • [Client] Fixed an issue in MqttClientOptionsBuilder which prevents adding TLS options to the client options when calling Build(). (Thanks to @cvellan).
  • [Client] Added an overload for subscribing at both clients which reduces required code.
  • [Client] Added the ClientId to the application message interceptor context.
  • [Server] The application message interceptor can now delete any received application message.
  • [Server] Added a ConnectionValidator context to align with other APIs (BREAKING CHANGE! Please find new example in Wiki).
  • [Server] Added an interface for the MqttServerOptions.
  • [Server] Added packet statistics for the connected clients.
  • [Server] Fixed a security issue which sends retained packages to a failed subscription.
  • [Server] Fixed the response (MaximumQoS) of a subscription (Thanks to @redbeans2017).
  • [Server] The keep alive timeouts are now checked for every client (Thanks to @RainerMueller82).
  • [Server] The used IP addresses can be specified now (IPAddress.Any as default).

v2.5.3

25 Nov 15:18
Compare
Choose a tag to compare
  • [Core] Removed all dependencies to other libraries (BREAKING CHANGE!).
  • [Core] Updated SDK libraries.
  • [Client] Fixed broken support for WebSocketSecure connections (Thanks to @StAI).

v2.5.2

21 Nov 19:59
Compare
Choose a tag to compare
  • [Core] Refactored trace messages.