MQTT

Logo protokołu MQTT
Ilustracja przedstawia budowę oraz zastosowanie protokołu, opisy są w języku portugalskim

MQ Telemetry Transport (MQTT) – oparty na wzorcu publikacja/subskrypcja, ekstremalnie prosty, lekki protokół transmisji danych. Przeznaczony jest do transmisji dla urządzeń niewymagających dużej przepustowości. Poprzez ograniczenie prędkości transmisji, protokół zapewnia większą niezawodność. Protokół ten idealnie sprawdza się przy połączeniach maszyna-maszyna, w Internecie rzeczy (IoT), w urządzeniach mobilnych, oraz tam, gdzie wymagana jest oszczędność przepustowości oraz energii.

Protokół MQTT został stworzony przez Andy’ego Stanforda-Clarka z firmy IBM, oraz przez Arlena Nippera z firmy Arcom (obecnie Eurotech) w 1999 roku.

MQ w nazwie MQTT pochodzi od nazwy linii produktów firmy IBM (message queuing). Najnowsza wersja protokołu to MQTT Version 5.0 z 7 marca 2019.

Domyślny nieszyfrowany port komunikacji to 1883, szyfrowany 8883[1].

Broker MQTT

Broker pełni rolę serwera, z którym łączą się klienci, aby za jego pośrednictwem publikować informacje. Niektóre brokery, to: Mosquitto[2], RabbitMQ[3], HiveMQ[4], IBM MessageSight[5], VerneMQ[6], EMQ X[7], ejabberd[8].

Działanie MQTT

Każdy z klientów łączy się z brokerem, a następnie subskrybuje dany temat/tematy, może również publikować informacje w danym temacie. Kiedy klient opublikuje jakieś informacje, każdy klient, który subskrybuje ten sam temat, otrzyma tę informację. Tematy nie muszą być wcześniej tworzone oraz mogą mieć dowolną nazwę.

Klienci łącząc się z brokerem MQTT używają kilku funkcji do zarządzania transmisją:

  • Connect – ustanawia połączenie z brokerem.
  • Subscribe – subskrybuje (nasłuchuje) zadany temat na brokerze
  • Publish – publikuje (wysyła) informację na podany temat, poprzez broker, do wszystkich klientów subskrybujących dany temat.
  • Unsubscribe – przestaje subskrybować dany temat.
  • Disconnect – zamyka połączenie z brokerem.

MQTT w praktyce

Z protokołu MQTT korzysta m.in. komunikator internetowy Messenger. Dzięki zastosowaniu tego protokołu w łatwy sposób możemy przenosić się podczas rozmowy z jednego urządzenia na drugie i kontynuować konwersację.

Protokół znajduje szerokie zastosowanie w rozwiązaniach dla tzw. inteligentnych domów.

Home Assistant, czyli jeden z najpopularniejszych systemów inteligentnego domu umożliwia instalację dodatku zawierającego broker MQTT.[9]

Supla, czyli polski system automatyki budynkowej umożliwia publikację przypisanych do konta urządzeń do brokera MQTT. Dzięki temu możemy sterować nimi za pośrednictwem tego protokołu[10].

Istnieje również implementacja klienta protokołu na Arduino[11].

Przypisy

  1. Beginners Guide To The MQTT Protocol [online], 9 sierpnia 2016 [dostęp 2024-12-24] (ang.).
  2. Mosquitto. [dostęp 2021-02-06].
  3. RabbitMQ. [dostęp 2021-02-06].
  4. HiveMQ. [dostęp 2021-02-06].
  5. IBM MessageSight. [dostęp 2021-02-06].
  6. VerneMQ. [dostęp 2021-02-06].
  7. EMQ X [online], EMQ Technologies Co. [dostęp 2021-02-06] (ang.).
  8. ejabberd [online], ProcessOne [dostęp 2021-02-06] (ang.).
  9. Home Assistant, MQTT [online], Home Assistant [dostęp 2023-01-23] (ang.).
  10. AIS SUPLA MQTT [online], AI-Speaker [dostęp 2023-01-24].
  11. Arduino Client for MQTT [online] [dostęp 2021-02-06] (ang.).

Linki zewnętrzne

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.