MQTT
MQTT (англ. message queuing telemetry transport) — упрощённый сетевой протокол, работающий поверх TCP/IP, ориентированный на обмен сообщениями между устройствами по принципу издатель-подписчик.
История
Первая версия разработана Энди Стэнфорд-Кларком (IBM) и Арленом Ниппером (Arcom) в 1999 году и опубликована под лицензией со свободой от роялти. Спецификация MQTT 3.1.1 была стандартизирована консорциумом OASIS в 2014 году[1].
Годом ранее была разработана спецификация для сенсорных сетей MQTT-SN ver.1.2.[2]
Особенности протокола
Протокол ориентируется на простоту в использовании, невысокую нагрузку на каналы связи, работу в условиях постоянной потери связи, лёгкую встраиваемость в любую систему. Основное предназначение — работа с телеметрией от различных датчиков и устройств.
MQTT-сеть включает в себя MQTT-брокера (сервер), который служит посредником во взаимодействии MQTT-агентов — издателей и подписчиков. Издатели публикуют информацию, предназначенную для подписчиков, при этом протокол не вводит ограничений на формат передаваемых данных..
MQTT реализует модель «издатель — подписчик», используя минимальное количество методов. Они служат для указания действий, которые нужно выполнять. Эти действия сводятся к взаимодействию с брокером и к работе с темами и сообщениями. Агенты подключаются к брокеру, а затем либо публикуют темы и сообщения в них, либо подписываются на темы и получают сообщения, в этих темах опубликованные. Завершив работу, агент отключается от брокера. Мметоды MQTT:
- Connect — установить соединение с брокером.
- Disconnect — разорвать соединение с брокером.
- Publish — опубликовать тему на брокере.
- Subscribe — подписаться на тему на брокере.
- Unsubscribe — отписаться от темы на брокере.
См. также
Примечания
- ↑ docs.oasis-open.org
- ↑ Спецификация MQTT-SN ver. 1.2 [1]
Литература
- 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
Ссылки
- официальный сайт MQTT
- Eclipse Mosquitto™ — An open source MQTT broker
- CooperMaster, MQTT и Modbus: cравнение протоколов, используемых в шлюзах для IoT // Хабр, 27 июня 2016
- m1rko, Протокол MQTT: концептуальное погружение // Хабр 14 августа 2019
- kolabaister, Мониторинг показателей linux сервера в Home Assistant через mqtt // Хабр, 15 марта 2021 пример настройки и использования протокола MQTT для передачи данных.
- Pubsubclient — Arduino Client for MQTT. Library provides a client for doing simple publish/subscribe messaging with a server that supports MQTT.
- MQTT // Википедия