MQTT

MQTT (Message Queuing Telemetry Transport) is a messaging protocol based on TCP. It is open, simple and designed to be implemented easily. MQTT is characterized by low overheads in the communication, but provides stable message delivery nonetheless. With these properties, it is ideal for use in many situations including limited environments, such as for communicating in machine-to-machine (M2M) and Internet of Things (IoT) contexts with low, limited or expensive network bandwidth, but where information should be provided or consumed regularly despite this. Practical areas of use, where MQTT is already well used, include "Track & Trace" applications that record a wide variety of readings (e.g. temperatures, rotations, water levels etc.). The devices can range from monoboard computers (SoC), such as a Rasberry Pi, which has been expanded with the corresponding sensors, via smartphones, which provide the corresponding values for mobile devices, through to industrial manufacturing facilities, where the production and hardware status should be monitored. An MQTT client can act as a "Listener", which listens to messages from other MQTT clients, or as a "Publisher", which sends messages. The mapping of the messages is organized into channels, so-called "topics", this means that in the simplest scenarios, two MQTT clients can "talk" when the same topic is selected for both of them. In this simple scenario, this can be enough to receive reports about the water levels in a hydroelectric facility on your smartphone, for example. However, as soon as multiple clients are involved and there are various topics available, or also in use, or access needs to be made secure accordingly, a so-called "Broker", meaning an MQTT server, is a good solution. This also provides the facility of implementing additional protocols such as JMS (Java Messaging Service).