The M2Mqtt library has the objective to simplify system development based on MQTT protocol. For .Net developers, there are some basic concepts to know about MQTT to use this library but with all advantages of C# programming and event-driven model.
In general, as .Net developers we need to know MQTT protocol base concepts (client ID, topics and QoS levels) but for advanced usage of the library you need to know some other advanced features (topic wildcards, retained message, will message, clean session).
Main advantage is that you don’t need to know :
- MQTT messages format and framing;
- How execute all MQTT operations like connect, disconnect, publish, subscribe and unsubscribe;
- How QoS levels are guaranteed;
- How connection keep alive is handled;
Thanks to its software architecture, the M2Mqtt library provides you :
- Abstraction layer on MQTT messages and framing;
- All MQTT operations exposed with simple methods;
- Event driven model on MQTT protocol. Events raised for :
- Publish operation completed;
- Subscribe/Unsubscribe operation completed;
- Message received (published by other client);
- Disconnection from broker;
- Internal “inflight queue” to execute all operations asynchronously;
- Connection “keep alive” built in;
- Security support with SSL/TLS;
As you can see, using all .Net knowledge and MQTT basic concepts, we can develop complex solution for Internet of Things and M2M communication.