Новые возможности MQTT 5.0 | (1) Свойства и нагрузки
По сравнению с MQTT 3.1.1, протокол MQTT 5.0 добавляет множество свойств, которые распределяются в переменных заголовках и полезной нагрузке пакета.
Пакеты, несущие полезную нагрузку в протоколе MQTT 5.0, включают пакет CONNECT, пакет PUBLISH, пакет SUBSCRIBE, пакет SUBACK, пакет UNSUBSCRIBE и пакет UNSUBACK.
Полезная нагрузка пакета PUBLISH отвечает за хранение содержимого сообщения, которое совпадает с протоколом MQTT 3.1.1.
ПОДКЛЮЧИТЬ пакет
Новые свойства переменного заголовка пакета CONNECT:
В полезной нагрузке пакета CONNECT некоторые поля изменились, а Будет ли сообщение стал Will Payload. Свойства завещания добавляются в Payload для определения поведения сообщения завещания.
Новые свойства завещания:
КОННАК Пакет
Пакет CONNACK не имеет полезной нагрузки, а свойства, содержащиеся в заголовке переменной, следующие:
ПУБЛИКАЦИЯ Пакет
Свойства переменного заголовка сообщения PUBLISH:
PUBACK, PUBREC, PUBREL, PUBCOMP, SUBACK, UNSUBACK имеют следующие три свойства:
Свойства сообщения SUBSCRIBE также существуют в заголовке переменной.
Полезная нагрузка в пакете SUBSCRIBE в MQTT 5.0 содержит Варианты подписки.
Биты 0 и 1 параметров подписки указывают максимальное качество обслуживания. В этом поле указывается максимальный уровень QoS, который сервер может отправлять в сообщения клиентского приложения. Если значение QoS равно 3, возникает ошибка протокола.
Бит 2 опции подписки указывает на опцию No Local. Если значение равно 1, сообщение приложения не будет опубликовано издателю, подписавшемуся на тему публикации, и если для параметра установлено значение 1 в общая подпискабудет вызвана ошибка протокола.
Бит 3 параметра подписки указывает, что зарезервировано «Сохранить как опубликованное». Если значение равно 1, сервер должен установить флаг RETAIN пересылаемого сообщения таким же, как флаг RETAIN полученного пакета PUBLISH. Если значение равно 0, сервер должен установить флаг RETAIN пересылаемого сообщения в 0 независимо от значения флага RETAIN в полученном пакете PUBLISH.
Биты 4 и 5 параметра подписки указывают на сохранение обработки. Эта опция используется для управления отправкой сохраненного сообщения. Когда значение Retain Handling равно 0, сервер должен перенаправить сохраненное сообщение в раздел, соответствующий подписке. При значении 1, если подписка больше не существует, серверу необходимо переслать сохраненное сообщение в раздел, соответствующий подписке. Однако если подписка существует, сервер больше не может пересылать сохраненное сообщение. Если значение равно 2, сервер не пересылает сохраненное сообщение.
Биты 6 и 7 опции подписки зарезервированы для использования в будущем. Если какой-либо из зарезервированных битов полезной нагрузки не равен нулю, сервер рассматривает пакет как искаженный пакет.
Пакет ОТПИСКИ
Пакет UNSUBSCRIBE имеет только два свойства: длину свойства и пользовательское свойство.
Полезная нагрузка пакета UNSUBSCRIBE намного проще, чем полезная нагрузка SUBSCRIBE. Он содержит только список тематических фильтров и не содержит большого разнообразия вариантов подписки.
Сервер будет рассматривать пакет как искаженный пакет.
ОТКЛЮЧИТЬ ПАКЕТ (новый)
Пакет DISCONNECT — это новый пакет из MQTT 5.0. Его введение означает, что брокер mqtt имеет возможность активного отключения. Свойства пакета DISCONNECT:
Первоначально опубликовано на