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

 

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

Статья является пятой частью серии, описывающей этапы разработки нативного MQL5-клиента для протокола MQTT 5.0. В этой части мы опишем структуру пакетов PUBLISH - как мы устанавливаем их флаги публикации (Publish Flags), кодируем строки названий тем и устанавливаем идентификаторы пакетов, когда это необходимо.

MQTT — это протокол обмена сообщениями публикации и подписки. Таким образом, мы можем ожидать, что его ядром являются пакеты PUBLISH (публикация) и SUBSCRIBE (подписка). Все остальные типы пакетов являются вспомогательными.

Помимо возможности создавать пакеты PUBLISH, мы также должны иметь возможность их читать, поскольку сообщения, которые наш Клиент будет получать от других Клиентов, также являются пакетами PUBLISH. Это связано с тем, что протокол доставки симметричен.

Пакеты PUBLISH имеют другой фиксированный заголовок с флагами публикации (Publish Flags) и изменяемый заголовок с обязательным названием темы, закодированным как строка UTF-8, и обязательным идентификатором пакета (если QoS > 0). Кроме того, со временем он может использовать почти все свойства (в том числе и пользовательские), представленные в MQTT 5.0, включая свойства, связанные с режимом взаимодействия "Запрос/Ответ" (Request/Response).

В статье мы рассмотрим структуру заголовков, а также тестирование и реализацию флагов публикации, имен тем и идентификаторов пакетов.

Автор: Jocimar Lopes

Причина обращения: