MQTT je jednoduchý a efektivní protokol typu Publish-Subscribe. Původně byl vyvinut v roce 1999 pro monitorování ropovodů prostřednictvím satelitních spojů, ale dnes dominuje světu chytrých domácností, průmyslové automatizace a propojených zařízení (IoT).
Pracuje nad protokolem TCP/IP a je navržen tak, aby měl co nejmenší režii (hlavička zprávy může mít pouhé 2 bajty).
Na rozdíl od klasického modelu klient-server (např. HTTP), kde klient přímo žádá server o data, v MQTT spolu zařízení nekomunikují přímo. Vše probíhá přes centrální uzel:
Témata v MQTT fungují jako hierarchické adresy oddělené lomítkem. Umožňují efektivní filtrování zpráv: * Příklad: `dum/obyvak/teplota` * Wildcards (Zástupné znaky):
MQTT umožňuje definovat, jak spolehlivě má být zpráva doručena:
| Úroveň | Název | Popis |
|---|---|---|
| QoS 0 | At most once | „Pošli a zapomeň“. Zpráva je odeslána jednou, doručení není potvrzeno (nejrychlejší). |
| QoS 1 | At least once | Zpráva je doručena alespoň jednou. Příjemce musí potvrdit přijetí, jinak se posílá znovu. |
| QoS 2 | Exactly once | Zpráva je doručena právě jednou. Nejspolehlivější, ale vyžaduje nejvíce komunikace (4-cestný handshake). |
| Vlastnost | HTTP | MQTT |
|---|---|---|
| Model | Request/Response | Publish/Subscribe |
| Hlavička | Stovky bajtů (textová) | Jednotky bajtů (binární) |
| Spotřeba | Vysoká | Velmi nízká |
| Stav | Bezestavový | Udržuje trvalé spojení |
Populární brokeři: Mosquitto (nejpoužívanější open-source), HiveMQ, EMQX nebo cloudové služby jako AWS IoT Core.
— Viz také: AMQP, Internet věcí (IoT), TCP/IP, Home Assistant