Discussão do artigo "Desenvolvimento de um Cliente MQTT para o MetaTrader 5: Metodologia TDD (Parte 5)"

 

Novo artigo Desenvolvimento de um Cliente MQTT para o MetaTrader 5: Metodologia TDD (Parte 5) foi publicado:

Este artigo é a quinta parte de uma série que descreve as etapas de desenvolvimento de um cliente MQL5 nativo para o protocolo MQTT 5.0. Nesta parte, vamos detalhar a estrutura dos pacotes PUBLISH, configuraremos seus flags de publicação, codificaremos os nomes dos tópicos e estabeleceremos identificadores de pacotes quando necessário.

O MQTT é um protocolo de troca de mensagens baseado em publicação e assinatura. Dito isso, podemos esperar que seu núcleo sejam os pacotes PUBLISH (publicação) e SUBSCRIBE (assinatura). Todos os outros tipos de pacotes são auxiliares.

Além de criar pacotes PUBLISH, também precisamos ser capazes de lê-los, pois as mensagens que nosso cliente receberá de outros clientes também são pacotes PUBLISH. Isso ocorre porque o protocolo de entrega é simétrico.

Os pacotes PUBLISH têm um cabeçalho fixo diferente com flags de publicação e um cabeçalho variável com o nome do tópico obrigatório, codificado como uma string UTF-8, e um identificador de pacote obrigatório (se QoS > 0). Além disso, com o tempo, ele pode usar quase todas as propriedades (incluindo as personalizadas) apresentadas no MQTT 5.0, incluindo propriedades relacionadas ao modo de interação "Request/Response".

No artigo, analisaremos a estrutura dos cabeçalhos, bem como o teste e a implementação das flags de publicação, nomes de tópicos e identificadores de pacotes. 

Autor: Jocimar Lopes