MQTT
MQTT est un protocole de communication permettant de faire transiter des informations de manière plus légère que HTTP. Il est conçu transmettre les données de la manière la plus légère possible, ce qui en fait un protole particulièrement adapté pour faire communiquer des capteurs et des objets connectés.
Fonctionnement de MQTT
Une communication MQTT est établie entre un client et un broker.
Les clients peuvent émettre des messages (cas par exemple d'un capteur de température) ou consommer la donnée (cas d'un serveur d'application qui va exploiter cette donnée de température) sous forme d'abonnement à un topic.
Qualité de service
MQTT propose différentes qualités de service, appelées QoS. Celà permet par exemple que les messages sont bien envoyés, y compris dans des conditions où la qualité de communication est faible.
- QoS 0 : le message est émis sans confirmation de réception
- QoS 1 : le message est envoyé au minimum une fois (confirmation de réception du broker)
- QoS 2 : le message est envoyé une fois et une seule
Plus la QoS est élevée, et plus le broker et le client consomment de ressources informatiques.
Sécurité
MQTT existe en version non sécurisée (port 1883) ou sécurisée (MQTTS sur le port 8883).
L'authentification peut se faire par user / password ou par certificats.
Pourquoi MQTT est un protocole adapté à l'Internet des Objets ?
MQTT limite la consommation de données entre le client (l'objet) et le serveur. Il est donc adapté lorsque la bande passante est un critère de performance ou de coût (par exemple avec une liaison M2M en 3/4/5G).
De plus, il permet aux clients de se connecter à un broker, ce qui est pratique pour les client se trouvant derrière un pare-feu.
Limitations de MQTT
Une des limitations de MQTT réside dans la complexité à le configurer pour faire de la scalabilité horizontale.
Brokers MQTT
Il existe plusieurs offres de broker MQTT.
Broker | Editeur | Type | Remarques |
---|---|---|---|
Mosquitto | Eclipse | Open Source et gratuit | |
HiveMQ | HiveMQ GmbH | ||
EMQX | EMQ technologies Inc | Open Source |
Clients MQTT
Client | Editeur | Type | Remarques |
---|---|---|---|
MQTTX | EMQ technologies Inc | Client MQTT gratuit multi-plateformes et multi-modes (CLI, desktop...) | Probablement l'un des meilleurs choix actuel.
Lien : https://mqttx.app/ |
MQTT Explorer | Thomas Nordquist | Open Source | Github : https://github.com/thomasnordquist/MQTT-Explorer |