Discusión sobre el artículo "Desarrollando un cliente MQTT para MetaTrader 5: metodología de TDD (Parte 5)"

 

Artículo publicado Desarrollando un cliente MQTT para MetaTrader 5: metodología de TDD (Parte 5):

El presente artículo supone la quinta parte de la serie que describe las etapas de desarrollo de un cliente MQL5 nativo para el protocolo MQTT 5.0. Hoy describiremos la estructura de los paquetes PUBLISH: cómo establecemos sus banderas de publicación (Publish Flags), codificamos cadenas de nombres de temas y establecemos IDs de paquetes cuando es necesario.

MQTT es un protocolo de intercambio de mensajes de publicación-suscripción. Así, podemos esperar que nuestros principales paquetes sean PUBLISH (publicar) y SUBSCRIBE (suscribir). Todos los demás tipos de paquetes serán auxiliares.

Además de poder crear paquetes PUBLISH, también necesitaremos poder leerlos, ya que los mensajes que nuestro Cliente recibirá de otros Clientes también serán paquetes PUBLISH. Esto se debe a que el protocolo de entrega es simétrico.

Los paquetes PUBLISH tienen otro encabezado fijo con banderas de publicación y un encabezado variable con un nombre de tema obligatorio codificado como cadena UTF-8 y un ID de paquete obligatorio (si QoS > 0). Además, con el tiempo podremos utilizar casi todas las propiedades (incluidas las propiedades personalizadas) introducidas en MQTT 5.0, incluidas las propiedades relacionadas con el modo de interacción "Solicitud/Respuesta" (Request/Response).

En este artículo, veremos la estructura de los encabezados y la prueba e implementación de las banderas de publicación, los nombres de los temas y los identificadores de paquetes. 

Autor: Jocimar Lopes