MQTT protocol is a lightweight, open and simple network protocol for the device communications. It is based on the principle of publishing messages and subscribing to topics, or "pub/sub". The protocol runs over TCP/IP, or over other network protocols that provide ordered, lossless, bi-directional connections. It was designed for the low-bandwidth, high latency networks in the late 1990s/early 2000s and its support to connect over thousands of clients to a single server. This characteristic is a suite for the devices which has very limited processing powers and limited memory, such as sensors, mobile devices, monitoring devices. Since It provides a common interface for everything, new sensors or devices can integrate very easily with the system.
Message in MQTT is published on topics. These topics are treated as a hierarchy separate using slash(/) as a separator like in the file system.Clients can receive messages by creating subscriptions. A subscription may be to an explicit topic, in which case only messages in that topic will be received, or it may include wildcards.
Eg:- sensors/COMPUTER_NAME/temperature/HARDDRIVE_NAME
Two wildcards are available,
Message in MQTT is published on topics. These topics are treated as a hierarchy separate using slash(/) as a separator like in the file system.Clients can receive messages by creating subscriptions. A subscription may be to an explicit topic, in which case only messages in that topic will be received, or it may include wildcards.
Eg:- sensors/COMPUTER_NAME/temperature/HARDDRIVE_NAME
Two wildcards are available,
+
or #
.+
can be used as a wildcard for a single level of hierarchy.- sensors/+/temperature/+
#
can be used as a wildcard for all remaining levels of hierarchy. - sensors/#
MQTT defines three levels of quality of service(QoS). This QoS define how messages are travel through the protocol. As an example, we can get a parcel sending through the normal mail or courier service. Courier service assures the delivery but normal mail not providing it.
QoS 0 - At most once delivery: With this setting, messages are delivered according to the best effort of the underlying network.
QoS 1 - At least Once Delivery: For this level of service, the MQTT client or the server would attempt to deliver the message at-least once.But there can be a duplicate message.
QoS 2 - Exactly once delivery: This is the highest level of Quality of Service. Additional protocol flows ensure that duplicate messages are not delivered to the receiving application.
MQTT Server/Broker
MQTT Clients
Comments