Начало введены MQTT

Краткое
MQTT (Message Queuing Телеметрия транспорта, очереди сообщений Телеметрия Transport Protocol), основанный на публикации / подписки (публикация / подписка) режим "легкий" протокол,
протокол , построенный по протоколу TCP / IP, на IBM выпустила в 1999 году. MQTT большим преимуществом является то, что код может быть минимальной и ограниченной пропускной в режиме реального времени удаленных устройств для обеспечения надежной службы обмена сообщениями.
Как недорогой, низкий уровень использования полосы пропускания мгновенного обмена сообщениями протокола, поэтому более широко используется в вещах, малогабаритного оборудования, мобильных приложений.
MQTT основан на клиенте - сообщение сервера публикации / подписки транспортного протокола. MQTT соглашение легкое, простое, открытое и легко реализовать эти функции делают его пригодным для очень широкого диапазона.
Во многих случаях, в том числе стесненных условий, такие как: машина (M2M) связь, и вещей (Лот) , которые взаимодействуют с датчиком в спутниковой связи,
иногда набор медицинского оборудования, умный дом, и ряд миниаппаратуры Он широко используется.

Во- вторых, дизайн спецификации в
связи с окружающей средой ВГД имеет особое значение , так MQTT следующие принципы проектирования:
(1) упорядочение, без добавления незаменимых функций;
(2) публикация / подписка (Pub / Sub) модель для облегчения новости передача между датчиком;
(3) позволяет пользователю динамически создавать тему, стоимость нулевого технического обслуживания;
(4) минимальная сумма перевода , чтобы повысить эффективность передачи;
(5) с низкой пропускной способностью, высокой задержки, сетевой нестабильности и т.п. во внимание;
(6) поддерживает непрерывный контроль сеанса;
(7) оценили клиентские вычислительные мощности могут быть низкими;
(8) обеспечение качества управления услугами;
(9) при условии , агностические данных, а не заставлять формат данных типа передачи, сохранять гибкость.
В- третьих, основные характеристики
коммуникационного протокола MQTT , работающих на удаленных датчиков и устройств управления с низкой пропускной способностью, ненадежны дизайна сетевой протокол, который имеет следующие несколько основных характеристик:
(1) с использованием модели публикации / подписки обмена сообщениями, обеспечивая многие выпуск новостей, снятие приложений связи.

Это похоже на XMPP, но информация избыточности MQTT гораздо меньше, чем XMPP ,, потому что XMPP использует формат XML для передачи текстовых данных.

(2) загружать содержимое маски передачи сообщений.

(3) с использованием протокола TCP / IP обеспечивает подключение к сети.

Mainstream MQTT основан на соединении TCP для толчка данных, но также имеет версию UDP на основе, называемый MQTT-SN. Поскольку две версии , основанные на различных соединений, каждый с различными сильными и слабыми сторонами естественно.
(4) Есть три новостей качества обслуживания выпуска
более одного раза: Сообщение полностью зависит от базовой сети TCP / IP, может произойти отсутствую или дублировать сообщения. Этот уровень может быть использован в следующих случаях данные датчиков окружающей среды, потеря прочитанной записи не имеет значения,
потому что будет отправлена во второй раз вскоре после этого . Это способ подтолкнуть генерал - майоры АРР, если интеллектуальное устройство отсутствует , когда сообщение толчок, толчок мимо не получил, не получит сеть снова.
«По крайней мере , один раз» , чтобы гарантировать , что сообщение достигает, но может произойти сообщение повторяется.

«Только один раз» , чтобы гарантировать , что сообщение достигает один раз. В некоторых из более жестких требований к системе биллинга, вы можете использовать этот уровень. В биллинговой системе, сообщение повторяется или отсутствует, приведет к неправильным результатам.
Этот пресс - релиз высокого качества обслуживание также может быть использовано , чтобы подтолкнуть APP мгновенных сообщений, гарантируя , что пользователи получают и будут получать только один раз.
(5) небольшие накладные расходы передачи малы (заголовок фиксированной длиной 2 байта), протокол обмен сведен к минимуму , чтобы уменьшить сетевой трафик.

Именно поэтому он очень подходит для представления в «Интернете вещей в области связи, информация для сбора датчика с сервером,»
вы знаете , пропускную способность и вычислительную мощность встроенных устройств является относительно слабой, использования этого протокола , чтобы доставить сообщение снова достаточно.
(6) , используя завещании характеристики для информирования заинтересованных сторон механизмов абортированных клиента.

Последняя воля: Это является свидетельством механизм для других устройств для отправки последние слова одного и того же субъекта в устройстве уведомления было отключено.

Завещание: механизм будет функционировать аналогичен последнюю волю.
Четыре, MQTT принцип соглашение
4.1 Реализации протокол MQTT
для достижения протокола MQTT требует клиент и сервер связи завершен, в процессе общения, MQTT соглашение имеет три тождества:
издатель (Publish), агент (брокер) (сервер), абоненты (Subscribe) ,
где издатели сообщений и подписчики клиенты, сообщения прокси - сервер, сообщение издатель может быть одновременно абоненты
MQTT передаются сообщения разделены на темы: «тема» и нагрузки (полезная нагрузка) в двух частях
(1 ) тему, можно понять , как тип сообщения, после того, как абонентские подписки (Подписка), получит содержание сообщения , что тема (полезную нагрузка);
(2) полезную нагрузку, можно понять , как содержание сообщения относится к конкретному абоненту , чтобы использовать содержание
передачи 4.2 сети и сообщения приложения
MQTT будет строить основной сетевой транспорт: он устанавливает соединение от клиента к серверу, обеспечивая упорядоченные между ними, а также без потерь, двусторонний поток байт на основе передачи.

Когда данные приложения , передаваемые по сети MQTT, MQTT будет связан с качеством обслуживания (QoS) и название темы (тема) даже актуальна.
4,3 MQTT клиент
вариант использование приложение или устройство MQTT соглашение, всегда установить сетевое соединение с сервером. Клиенты могут:

(1) публиковать информацию о других клиентах могут подписаться;
(2) Подписаться на новости , опубликованные другими клиентами;
(3) , чтобы отказаться от подписки или удалить сообщение приложения;
(4) отключен от сервера.
4.4 MQTT сервер -
сервер MQTT называется «Сообщение Агент» (брокер), может быть приложением или устройством. Он расположен на выпуске новостей и абонентов между ними, он может:

(1) получение сетевого соединения от клиента;
(2) клиент получает информацию о приложении , выданной;
(3) Обработка подписки и отписка запрос от клиента;
(4) передают сообщения клиента абонента приложения

4,5 MQTT соглашение о подписке, темы, сессии
один: подписаться
подписаться на сообщения , которые содержат фильтры (Тема фильтра) и максимальное качество обслуживания (QoS). Подписка будет ассоциироваться с сессией (Session).
Сеанс может содержать несколько подписок. Каждая сессия Каждая подписка имеет различные тематические фильтры.
Во- вторых, сессия (Session)
для каждого клиента и сервера для установления соединения является сессия, состоянием взаимодействия между клиентом и сервером. Сеанс существует между сетью,
или между несколькими непрерывными сетевым соединением между клиентом и сервером.
В- третьих, название предмета (Тема Name) ,
чтобы подключиться к приложению этикетки сообщений, метки с матча абонента. Каждый клиент - сервер отправляет сообщение подписываться на конец тега матча.
В- четвертых, при условии фильтры (Тема фильтра)
а, в подписной выражение подстановочные фильтра имя темы, представляет собой более чем одну тему на матч.
В- пятых, нагрузка (полезная нагрузка)
содержание конкретного сообщения абонента получено.
4.6 Метод MQTT Протокол
Протокол MQTT определяет методы (также называемый к действию), определяется представлением ресурсов в операции. Эти данные о ресурсах могут представлять уже существующие или динамически сгенерированные данные, в
зависимости от реализации сервера. Вообще говоря, это относится к ресурсам файлов или вывода на сервере. Основные методы являются:
(1) Подключение. Ожидание , чтобы установить соединение с сервером.
(2) Отключить. MQTT ждать клиента , чтобы завершить работу, и отсоединяется от / IP сеанса сервера TCP.
(3) Абонемент. Ожидание завершения подписки.
(4) UNSUBSCRIBE. Ожидание сервера , чтобы отменить один или несколько клиентов подписываться на темы.
(5) Опубликовать. MQTT клиент посылает сообщение с запросом, поток возвращается к завершению прикладной программы передачи.
Пять, MQTT протокол структура пакета
в протоколе MQTT, пакет состоит MQTT: фиксированную головку (фиксированный заголовок), первые переменное (переменная заголовка), тело сообщения (полезная нагрузка) из трех частей
MQTT структура пакета выглядит следующим образом :
(1) железы (фиксированный заголовок). MQTT присутствует во всех пакетах, идентификатор класса пакета представляет собой тип пакета и пакет.
(2) переменная головка (переменная заголовка). MQTT присутствует в части пакета, тип пакета определяет , имеется ли переменная заголовка и конкретное содержание.
(3) тело сообщения (полезная нагрузка). MQTT присутствует в части пакета, конкретное содержание полученного клиента.
5.1 MQTT желез
железы MQTT присутствует во всех пакетах, следующую структуру:

5.1.1 типы пакетов MQTT

Позиция: Байт 1 в битах 7-4.

Фаза в 4-битовое беззнаковое целое, тип и значения описывается следующим образом:

5.1.2 флаг

Позиция: Байт 1 в битах 3-0.

Без использования флага типа сообщения, флаг используется в качестве резервного бита. Если вы получили неверный флаг, приемник должен закрыть подключение к сети:
(1) DUP: распространять копии сообщения. Используется для обеспечения надежной передачи сообщения, если установлено значение 1, увеличивается в следующем MESSAGEID больше,
и требует подтверждения ответа на сообщение , чтобы убедиться , что передача завершена, но не для обнаружения повторно переданного сообщения.
(2) QoS: Качество пресс - релизе службы, а именно: обеспечить, чтобы количество доставки сообщений
(3) СОХРАНИТЬ: Опубликовано сохранение идентичности, указывает на то, что сервер , который вы хотите сохранить информацию о толчок, если есть появляются новые абоненты, положить сообщение толчок к ней,
если она отодвинула выпуск текущих абонентов. 5.1.3 остающейся Длина (Оставшаяся длина)

Адрес: Байт 2.

Второй байт заголовка фиксированной переменной длины , который хранит общий размер заголовка сообщения и тела, но непосредственно не сохраняются. Этот байт расширен, за исключением механизма,
бывшего для проведения длины 7, после того, как используется идентификация. Когда последний бит равен 1, это указывает на недостаточную длину, необходимо использовать два байта продолжают сохранять. Например , чтобы рассчитать следующий размер 0
5.2 MQTT переменная заголовка
MQTT заголовка пакета содержит переменную, которая расположена между неподвижной головкой и нагрузкой. СУЩНОСТЬ переменного заголовок пакета по типу отличается, поскольку чаще идентификатор пакета приложения:

Многие типы пакета данных включают в себя поле 2-байтовых идентификации пакета, эти типы пакетов иметь: (ПУБЛ на QoS> 0),
PUBACK, PUBREC, PUBREL, PUBCOMP, то SUBSCRIBE, SUBACK, с эталонным UNSUBSCRIBE, UNSUBACK.
5.3 Полезная нагрузка тело сообщения из
третьей части пакета MQTT положение полезной нагрузки сообщения, содержащее CONNECT, подписываться, AUBACK, UNSUBSCRIBE четыре типа сообщения.
(1) CONNECT, содержание тела сообщения являются: Клиент ClientID, подписаться на тему, сообщение, и имя пользователя и пароль
(2) ПОДПИСАТЬСЯ, содержание тела сообщения серия быть подписаны темы и QOS
(3) SUBACK, содержание тела сообщения ПОДПИСАТЬСЯ сервер для применения тем QoS и ответ для подтверждения и
(4) содержания тела UNSUBSCRIBE, сообщения подписались потоки.

В этой статье узнать из учебника новобранца: https://www.runoob.com/w3cnote/mqtt-intro.html

рекомендация

отwww.cnblogs.com/smart-girl/p/11422669.html