Generic MQTT-SN client and gateway

196 views
Skip to first unread message

Alex Robenko

unread,
Dec 16, 2016, 2:07:58 AM12/16/16
to MQTT

The MQTT-SN protocol is a sibling of MQTT. While MQTT is designed to be used over a reliable stream transport protocol (such as TCP/IP), the MQTT-SN was designed to be used over a datagram transport protocol. It means, that if a message is received by the other end on the communication link, it is received in full and correctly.


There are multiple implementations of MQTT-SN client libraries and/or gateway applications, most of them support only UDP/IP and/or ZigBee transport layers. However, it is possible to use MQTT-SN protocol with any other I/O link, such as RS-232 serial or CAN bus, as long as additional "packatization" of the native MQTT-SN message is provided, to insure the message is delivered in full and without errors.


I'd like to present to you my implementation of single threaded, asynchronous, non-blocking, easy to use, suitable for embedded platforms, well documented libraries of both MQTT-SN client and gateway. They are completely generic and don't make any assumptions about the system they are running on. There are no socket/network abstractions, all the required services (such as delivery of the message or time measurement) are requested via callbacks. The driving code is free to introduce any extra modification to the exchanged data, such as additional packetization and/or encryption. It makes the whole architecture very flexible and open for use with any third party framework (such as Asio, QT, various RTOSes, etc...).


All the details are on https://github.com/arobenko/mqtt-sn


I'll appreciate any feedback, suggestions, and bug reports.


Regards,

Alex

Reply all
Reply to author
Forward
0 new messages