MQTT
| Модель TCP/IP (RFC 1122) |
|---|
| Прикладний рівень |
| Транспортний рівень |
| Мережевий рівень |
| Канальний рівень |
MQTT (англ. Message Queue Telemetry Transport) — спрощений мережевий протокол, що працює на TCP / IP. Використовується для обміну повідомленнями між пристроями за принципом видавець-підписник.
Зміст
Історія створення[ред. | ред. код]
Перша версія протоколу була розроблена доктором Енді Станфорд-Кларком (IBM) та Арлен Ніппер (Arcom) 1999 року і опублікована під роялті-фрі ліцензією. Специфікація MQTT 3.1.1 була стандартизована консорціумом OASIS 2014 року.[1]
Можливості[ред. | ред. код]
- Простий у використанні. Протокол є програмним блоком без зайвої функціональності, що може бути легко вбудований в будь-яку складну систему;
- Зручний для більшості рішень з датчиками. Дає можливість пристроям виходити на зв'язок і публікувати повідомлення, які не були заздалегідь відомі або визначені;
- Легкий у адмініструванні;
- Низьке навантаження на канал зв'язку;
- Робота в умовах постійної втрати зв'язку або інших проблем на лінії;
- Немає обмежень на формат переданого контенту.
Методи MQTT[ред. | ред. код]
MQTT визначає методи (так звані «дієслова»), щоб вказати бажану дію, яка повинна виконуватися на ідентифікованому ресурсі. Чим є цей ресурс, будь то вже існуючі дані або дані, що генеруються динамічно, залежить від реалізації сервера. Часто ресурс відповідає файлу або результату виконання якогось файлу, розміщеного на сервері.
Connect. З'єднати: Чекає установки з'єднання з сервером.
Disconnect. Роз'єднати: Чекає доки клієнт MQTT закінчить будь-яку роботу, що має зробити, і доки роз'єднається TCP/IP сесія.
Subscribe. Підписатися: Чекає на завершення методу Subscribe чи UnSubscribe.
UnSubscribe. Відписатися: просить сервер відписати клієнта від одного або кількох тем.
Publish. Публікувати: негайно повертається в потік додатку після того, як передасть запит клієнту MQTT.
Quality of Service[ред. | ред. код]
При відправленні повідомлення можна обирати три рівні якості доставки[2]:
- 0 — повідомлення може бути доставлено щонайбільше раз (або не доставлено).
- 1 — повідомлення буде доставлено щонайменше раз (а може й більше).
- 2 — повідомлення буде доставлено рівно один раз
Примітки[ред. | ред. код]
Література[ред. | ред. код]
- Bryan Boyd et al. Building Real-time Mobile Solutions with MQTT and IBM MessageSight. IBM Redbooks, 2014
- Jeff Mesnil. Mobile and Web Messaging. O'Reilly Media, Inc., 2014 ISBN 978-1-4919-4480-6 — II. MQTT