MQTT (Message Queue Telemetry Transport) is a lightweight messaging protocol for small devices and low-bandwidth networks. It was first developed in 1999 by Dr. Andy Stanford-Clark of IBM and Arlen Nipper of Arcom (now Eurotech), and it is now an open standard.
The protocol is designed for use in situations where bandwidth and power usage are at a premium, such as in sensor networks and machine-to-machine (M2M) communications. MQTT uses a publish-subscribe model, in which clients connect to a broker (a central server) and subscribe to topics. When a client publishes a message to a topic, the broker forwards the message to all clients that have subscribed to that topic.
Messages in MQTT are sent in binary format and are relatively small in size. They contain a fixed header and a variable payload, which can contain any type of data. The payload can be sent as either plain text or binary data, depending on the needs of the application.
Example of MQTT message format:
- Fixed header: 2 bytes
- Topic name: variable length
- Payload: variable length
MQTT is widely used in IoT applications, such as home automation and industrial control systems. Some examples of its use include:
- Monitoring and controlling the temperature and humidity in a greenhouse
- Tracking the location of a fleet of delivery trucks
- Monitoring the power usage of a building or industrial facility