Обсуждение статьи "Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 4)"

 

Опубликована статья Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 4):

Статья является четвертой частью серии, описывающей этапы разработки нативного MQL5-клиента для протокола MQTT. В этой части мы рассматриваем свойства MQTT v5.0, их семантику, то, как мы читаем некоторые из них, а также приводим краткий пример того, как свойства можно использовать для расширения протокола.

Свойства являются частью "механизмов расширяемости", добавленных в MQTT v5.0. Их не было в предыдущей версии 3.1.1, которая была последней перед этим крупным обновлением, но при этом повсеместно встречаются в MQTT v5.0. Но что такое свойства MQTT? Свойства чего именно?

Ответ - свойства Application Message (сообщение приложения). Согласно Стандарту OASIS, Application Message - это

"Данные, передаваемые по протоколу MQTT по сети для приложения. Когда сообщение приложения передается по MQTT, оно содержит полезные данные, качество обслуживания (Quality of Service, QoS), набор свойств и тему" (выделено мной).

Взгляните на желтый прямоугольник Payload data (полезная нагрузка) на Рисунке 1 ниже. Существует важное терминологическое различие, на которое мы хотим обратить ваше внимание.

Абстрактная схема сообщения приложения MQTT 5.0

Рис. 01. Абстрактная схема сообщения приложения MQTT 5.0

В контексте протокола обмена сообщениями, когда мы видим слово message (сообщение), мы обычно думаем о сообщении пользователя, часто текстовом сообщении. Чаще всего мы не думаем о сообщении как о приложении в целом. 

Но здесь сообщение, отправленное пользователями через MQTT, является частью данных полезной нагрузки, а свойства являются частью абстрактной модели протокола под названием Application Message. Таким образом, когда мы отправляем пользовательское сообщение через MQTT, мы можем иметь не только свойства, связанные с этим "пользовательским сообщением", но также свойства, связанные с сообщением приложения в целом: свойства для соединения, публикации, подписки на темы и отписки от них, свойства для аутентификации и т.д.

Кроме того, имеются Will-свойства, прикрепленные к Will-сообщению.

"Сообщение Will состоит из Will-свойств, Will-темы и полезной нагрузки Will в полезной нагрузке CONNECT (CONNECT Payload)". "

Терминология может показаться немного запутанной, когда вы начнете реализовывать протокол, но я сделаю все возможное, чтобы сделать ее максимально понятной.

Автор: Jocimar Lopes

 
спасибо за ваши усилия
ждем пятую часть.