MQTT — различия между версиями

Материал из ЭНЭ
Перейти к: навигация, поиск
м
 
Строка 1: Строка 1:
'''MQTT''' ({{lang-en|'''m'''essage '''q'''ueuing '''t'''elemetry '''t'''ransport}}) упрощённый [[протокол передачи данных|сетевой протокол]], работающий поверх [[TCP/IP]], ориентированный на обмен сообщениями между устройствами по принципу издатель-подписчик.
+
'''MQTT''' ({{lang-en|'''m'''essage '''q'''ueuing '''t'''elemetry '''t'''ransport}}) — упрощённый [[протокол передачи данных|сетевой протокол]], работающий поверх [[TCP/IP]], ориентированный на обмен сообщениями между устройствами по принципу издатель-подписчик.
  
 
== История ==
 
== История ==
Строка 7: Строка 7:
  
 
== Особенности протокола ==
 
== Особенности протокола ==
Протокол ориентируется на простоту в использовании, невысокую нагрузку на каналы связи, работу в условиях постоянной потери связи, лёгкую встраиваемость в любую систему. Основное предназначение — работа с [[Телеметрия|телеметрией]] от различных [[датчик]]ов и устройств.  
+
Протокол ориентируется на простоту в использовании, невысокую нагрузку на каналы связи, работу в условиях постоянной потери связи, лёгкую встраиваемость в любую систему. Основное предназначение — работа с [[Телеметрия|телеметрией]] от различных [[датчик]]ов и устройств.
  
MQTT-сеть включает в себя MQTT-брокера (сервер), который служит посредником во взаимодействии MQTT-агентов – издателей и подписчиков. Издатели публикуют информацию, предназначенную для подписчиков, при этом протокол не вводит ограничений на формат передаваемых данных..  
+
MQTT-сеть включает в себя MQTT-брокера (сервер), который служит посредником во взаимодействии MQTT-агентов — издателей и подписчиков. Издатели публикуют информацию, предназначенную для подписчиков, при этом протокол не вводит ограничений на формат передаваемых данных..
  
MQTT реализует модель «издатель – подписчик», используя минимальное количество методов. Они служат для указания действий, которые нужно выполнять. Эти действия сводятся к взаимодействию с брокером и к работе с темами и сообщениями. Агенты подключаются к брокеру, а затем либо публикуют темы и сообщения в них, либо подписываются на темы и получают сообщения, в этих темах опубликованные. Завершив работу, агент отключается от брокера. Мметоды MQTT:
+
MQTT реализует модель «издатель — подписчик», используя минимальное количество методов. Они служат для указания действий, которые нужно выполнять. Эти действия сводятся к взаимодействию с брокером и к работе с темами и сообщениями. Агенты подключаются к брокеру, а затем либо публикуют темы и сообщения в них, либо подписываются на темы и получают сообщения, в этих темах опубликованные. Завершив работу, агент отключается от брокера. Мметоды MQTT:
* Connect – установить соединение с брокером.
+
* Connect — установить соединение с брокером.
* Disconnect – разорвать соединение с брокером.
+
* Disconnect — разорвать соединение с брокером.
* Publish – опубликовать тему на брокере.
+
* Publish — опубликовать тему на брокере.
* Subscribe – подписаться на тему на брокере.
+
* Subscribe — подписаться на тему на брокере.
* Unsubscribe – отписаться от темы на брокере.
+
* Unsubscribe — отписаться от темы на брокере.
  
 
== См. также ==
 
== См. также ==
Строка 28: Строка 28:
 
== Литература ==
 
== Литература ==
 
* ''Bryan Boyd et al.'' Building Real-time Mobile Solutions with MQTT and IBM MessageSight. IBM Redbooks, 2014
 
* ''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
+
* ''Jeff Mesnil.'' Mobile and Web Messaging. O’Reilly Media, Inc., 2014 ISBN 978-1-4919-4480-6 — II. MQTT
  
 
== Ссылки ==
 
== Ссылки ==
 
* [https://mqtt.org/  официальный сайт MQTT]
 
* [https://mqtt.org/  официальный сайт MQTT]
* [https://mosquitto.org/  Eclipse Mosquitto™ — An open source MQTT broker]
+
* [https://mosquitto.org/  Eclipse Mosquitto™ — An open source MQTT broker]
 
* [https://habr.com/ru/company/intel/blog/304228/ ''CooperMaster'', MQTT и Modbus: cравнение протоколов, используемых в шлюзах для IoT // Хабр, 27 июня 2016]
 
* [https://habr.com/ru/company/intel/blog/304228/ ''CooperMaster'', MQTT и Modbus: cравнение протоколов, используемых в шлюзах для IoT // Хабр, 27 июня 2016]
* [https://habr.com/ru/post/463669/ ''m1rko'', Протокол MQTT: концептуальное погружение // Хабр 14 августа 2019]
+
* [https://habr.com/ru/post/463669/ ''m1rko'', Протокол MQTT: концептуальное погружение // Хабр 14 августа 2019]
 
* [https://habr.com/ru/post/547018/ ''kolabaister'', Мониторинг показателей linux сервера в Home Assistant через mqtt // Хабр, 15 марта 2021] пример настройки и использования протокола MQTT для передачи данных.
 
* [https://habr.com/ru/post/547018/ ''kolabaister'', Мониторинг показателей linux сервера в Home Assistant через mqtt // Хабр, 15 марта 2021] пример настройки и использования протокола MQTT для передачи данных.
* [https://github.com/knolleary/pubsubclient Pubsubclient — Arduino Client for MQTT. Library provides a client for doing simple publish/subscribe messaging with a server that supports MQTT.]
+
* [https://github.com/knolleary/pubsubclient Pubsubclient — Arduino Client for MQTT. Library provides a client for doing simple publish/subscribe messaging with a server that supports MQTT.]
 
* [[:ru:MQTT|MQTT // Википедия]]
 
* [[:ru:MQTT|MQTT // Википедия]]
  
Строка 47: Строка 47:
 
[[Категория:Жилище]]
 
[[Категория:Жилище]]
 
[[Категория:Умный дом]]
 
[[Категория:Умный дом]]
[[en:Home Assistant]]
+
[[Категория:Home Assistant]]
 
[[en:MQTT]]
 
[[en:MQTT]]

Текущая версия на 14:29, 28 июля 2022

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 — отписаться от темы на брокере.

См. также

Примечания

  1. docs.oasis-open.org
  2. Спецификация 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

Ссылки