Bases

MQTT (Message Queue Telemetry Transport) es un sencillo protocolo de mensajería basado en TCP/IP que permite la transmisión de mensajes desde dispositivos al servidor. Se hace una distinción entre el servidor MQTT (“Broker”) y los clientes MQTT. MQTT es particularmente adecuado para soluciones de automatización.

Ejemplo esquemático simple:

Cliente MQTT

El cliente se conecta a un servidor MQTT a través de TCP/IP, lo que normalmente requiere un nombre de usuario y una contraseña. El cliente puede enviar fácilmente mensajes con un tema al servidor MQTT. El contenido de los mensajes no se especifica, por ejemplo, puede ser un simple mensaje de texto o un mensaje estructurado que consta de varios campos.

El cliente también puede recibir mensajes registrándose para temas especiales. El broker entonces reenvía los mensajes para los temas registrados a los clientes MQTT existentes, siempre y cuando estén conectados en el momento del mensaje. Básicamente, el cliente puede ser un dispositivo muy simple o incluso un servidor que quiere recibir y enviar mensajes.

Broker MQTT

El broker MQTT es un servidor que puede ser visto como un centro de mensajería para todos los participantes de MQTT. El broker MQTT también administra usuarios y derechos de acceso. El broker no establece activamente conexiones con otros dispositivos MQTT, pero los clientes MQTT deben conectarse con el broker. Siempre y cuando se establezca la conexión, el broker puede enviar y recibir mensajes al cliente. Se utiliza una conexión TCP/IP para transportar los datos. Dependiendo de lo que los broker y clientes soportan, la conexión puede ser encriptada por SSL.

MQTT funciona incluso si los clientes instalados detrás de un router DSL en redes privadas inician sesión en el broker.

MQTT Topics, Subscribe and Publish

Topics

Los topics pueden ser vistos como una especie de subdivisión temática de los mensajes. Normalmente se trata de una línea de texto que suele estar separada por un “/”. Sólo si un cliente se ha registrado para uno o más temas, los mensajes para estos temas son enviados por el corredor a los clientes registrados.
Ejemplo de varios temas:

  • /Edificio-1/Sótano/Temperatura
  • /Edificio-1/Jardín/Movimiento
  • /Edificio-1/Dormitorio/Detector_de_humo

Subscribe

Los clientes de MQTTT pueden registrarse para uno o más temas. Este proceso se llama Subscribe.

Publish

Los clientes de MQTT pueden enviar un mensaje con un tema al broker. Este proceso se llama Publish. Sólo se puede garantizar que el broker esté conectado y reciba el mensaje. Sin embargo, al principio no se sabe si el broker envía este mensaje a otros clientes.

Referencias