New release for my M2Mqtt library, MQTT client available for any platform based on .Net Framework (from the desktop to the micro via the compact), now at version 2.4.0.0 and as always is available on CodePlex and Nuget.

Bug Fix : message identifier no longer cross-broker

This time the update contains, among other things, an important bug fixes on the message identifier generation for PUBLISH, SUBSCRIBE and UNSUBSCRIBE messages provided by the MQTT protocol. In previous versions, the generation of this identifier was encapsulated in the base class of the hierarchy of messages, the MqttMsgBase, highlighting the anomaly of a message identifier increasing cross-broker, which was used the same variable (static) for the generation also if the client was instantiated multiple times in our application to connect to multiple different brokers. Obviously, the protocol provides that the identifier is bound to the client-broker pair, namely that it is unique for each connection to the broker.

.Net Compact Framework 3.5 support

Another interesting update is .NET Compact Framework 3.5 support for the client running on Windows Embedded Compact 7, but especially the compatibility with .Net Framework versions less than the  4.0 (I removed default parameter values ​​in the constructors and methods and replaced them with the overloads).

Preparing for Windows Phone 8 support

Finally, in view of the release of Windows Phone 8 support the interface IMqttNetworkChannel has been added for the abstraction of the underlying communication channel and allow its implementation.