Message Queueing Telemetry Transport (MQTT) es un protocolo de mensajería de publicación-suscripción ligero y popular que es ideal para conectar dispositivos y aplicações de Internet de las cosas (IoT) o de máquina a máquina (M2M) a través de Internet. MQTT está diseñado para funcionar de manera eficiente en entornos de bajo ancho de banda o de bajo consumo, lo que lo convierte en una opción ideal para aplicações con una gran cantidad de clientes remotos. Se utiliza en una variedad de industrias, incluidas la electrónica de consumo, la automotriz, el transporte, la fabricación y la atención médica.
Los dispositivos o aplicações conectados a través de MQTT se conocen como clientes . Estos clientes publican y/o se suscriben a mensajes sobre un tema específico o sobre múltiples temas . Los clientes suscritos reciben todos los mensajes publicados en ese tema, lo que permite un intercambio de datos eficiente y tolerante a fallas entre muchos dispositivos y servicios.
En el corazón de una arquitectura MQTT hay un bróker . El broker es un servidor responsable de rastrear a los clientes (y cualquier tema al que estén suscritos), procesar mensajes y enrutar esos mensajes a los sistemas apropiados.
Varias versiones clave del protocolo MQTT se han adoptado como estándar. La organización OASIS gestiona las revisiones del protocolo y mantiene una especificación completa para cada versión . Cada revisión de MQTT ha ampliado el conjunto de características del protocolo, por lo que es importante saber a qué versión de MQTT se adhieren sus dispositivos y su agente.
Hay varios tipos de mensajes MQTT y cada tipo de mensaje contiene un formato específico que los dispositivos y aplicações compatibles deben seguir. Las revisiones del protocolo MQTT varían en formato y tipos de mensajes. Se puede encontrar una lista completa de tipos de mensajes en cada especificación del protocolo MQTT.
Los tres tipos de mensajes más comunes son CONNECT, PUBLISH y SUBSCRIBE. Cada mensaje MQTT contiene un encabezado, una carga útil y marcas opcionales. Dependiendo del tipo de mensaje, la carga útil puede ser de longitud variable. Por ejemplo, en un mensaje PUBLISH, la carga útil contiene los datos que se enviarán a todos los dispositivos suscritos, y el tamaño del campo de datos influye directamente en el tamaño total del mensaje. De manera predeterminada, los dispositivos MQTT se conectan a través del puerto 1883 de forma no segura o del puerto 8883 cuando se utiliza el cifrado SSL/TLS.
Los coches inteligentes son un excelente ejemplo del uso de MQTT en la práctica. Con la incorporación de funciones avanzadas, como diagnóstico remoto, gestión de flotas, pago de combustible y entretenimiento, los fabricantes de automóviles han adoptado MQTT como un estándar clave para los vehículos conectados. A diferencia del protocolo HTTP, MQTT permite mantener sesiones persistentes incluso cuando el coche atraviesa zonas sin cobertura o cambia de torre de telefonía móvil. Además, admite comunicaciones bidireccionales, lo que permite al vehículo y a la aplicación en la nube intercambiar datos de forma simultánea, sin necesidad de esperar a que el otro responda.
HTTP y MQTT son dos protocolos de red que se utilizan para transmitir datos a través de Internet. Veamos sus diferencias.
Muchas características de MQTT lo convierten en el protocolo ideal para la mensajería entre dispositivos IoT (las «cosas» de IoT) y sistemas back-end. Aquí nos centraremos en cuatro características:
MQTT admite el protocolo de control de transmisión/protocolo de Internet (TCP/IP) como protocolo de transporte subyacente. Este protocolo de red ampliamente utilizado garantiza que los mensajes se envíen de forma fiable entre los clientes y los intermediarios.
Hay varias razones por las que TCP/IP se considera fiable y eficaz:
Aunque es el más común, TCP/IP no es la única opción para el transporte de mensajes MQTT. El protocolo MQTT también funciona en UDP (User Datagram Protocol) y WebSockets.
Nos enorgullece ofrecerle los siguientes recursos gratuitos para ayudarle a explorar cómo NGINX puede garantizar la seguridad, equilibrar la carga y proporcionar alta disponibilidad en sistemas IoT basados en MQTT.