The
MQTT (
MQ Telemetry Transport) is a simple "
Internet of Things" communication protocol. It is based on passing messages between clients through the central server –
broker.
The client can be of the
Publisher type - sending their messages to defined
topic (address, topic). The
publisher can be for example represented by a sensor or meter.
On the contrary a
Subscriber subscribes to receive values from defined
topics in order to process such values after receipt.
The client can be a
Publisher and
Subscriber simultaneously.
Thanks to the fact that the clients communicate only with the intermediary (with the server - with the
broker), the clients do not have to know the network topology and each others existence – they only need to know how to connect with the
broker.
During the login sequence, each client is identified by
"ClientID" and then optionally by
"Username" and
"Password". The
SSL/TSL support is not implemented so far in the PROMOTIC system.
The
MQTT protocol defines three levels of message confirmation
QoS (
Quality of Service)
QoS 0 - the message is sent without confirmation and the delivery is not guaranteed (at-most-once).
QoS 1 - the message is delivered at least once.
QoS 2 - each message is delivered exactly once.
The client of the
Publisher type can send data also with
Retained flag (0/1 = not retained/retained data on the brokeru) and with
DUP flag (0/1 = not repeated/repeated sent messages)
According to the communication encryption level, the
MQTT protocol defines usage of 3 network ports:
1883 - (supported) unencrypted transmission
8883 - (not supported) SSL/TLS encrypted transmission
8884 - (not supported) encrypted transmission + SSL/TLS client certificate + the client must provide also the authentication cerificate published by broker
See:
Wikipedia: A list of TCP and UDP port numbers used by protocols to run network applications.
Limitation: The PROMOTIC system so far does not support encrypted transmission (supports only port
1883).
Links and directions
Communication of the PROMOTIC application with MQTT broker
The logged-in client is both
Publisher and
Subscriber. The
Subscriber client subscribes for receiving defined
topic address on the broker. The
Publisher client sends its data to this address to be received by
Subscriber.
For reading the data it is handy to use the preconfiguration: