O Message Queuing Telemetry Transport (MQTT) é um protocolo de mensagens de publicação e assinatura popular e leve, ideal para conectar dispositivos e aplicativos de Internet das Coisas (IoT) ou máquina a máquina (M2M) pela Internet. O MQTT foi projetado para operar com eficiência em ambientes de baixa largura de banda ou baixo consumo de energia, o que o torna uma escolha ideal para aplicativos com um grande número de clientes remotos. Ele é usado em diversos setores, incluindo eletrônicos de consumo, automotivo, transporte, manufatura e saúde.
Dispositivos ou aplicativos conectados via MQTT são conhecidos como clientes . Esses clientes publicam e/ou assinam mensagens sobre um tópico específico ou sobre vários tópicos . Os clientes inscritos recebem todas as mensagens publicadas naquele tópico, permitindo uma troca de dados eficiente e tolerante a falhas entre muitos dispositivos e serviços.
No coração de uma arquitetura MQTT está um broker . O broker é um servidor responsável por rastrear clientes (e quaisquer tópicos nos quais eles estejam inscritos), processar mensagens e encaminhá-las para os sistemas apropriados.
Várias versões importantes do protocolo MQTT foram adotadas como padrão. A organização OASIS gerencia as revisões do protocolo e mantém uma especificação completa para cada versão . Cada revisão do MQTT expandiu o conjunto de recursos do protocolo, por isso é importante saber a qual versão do MQTT seus dispositivos e corretores aderem.
Existem vários tipos de mensagens MQTT, e cada tipo de mensagem contém um formato específico que os dispositivos e aplicativos em conformidade devem seguir. As revisões do protocolo MQTT variam em formato e tipos de mensagens. Uma lista completa de tipos de mensagens pode ser encontrada em cada especificação do protocolo MQTT.
Os três tipos mais comuns de mensagens são CONECTAR, PUBLICAR e ASSINAR. Cada mensagem MQTT contém um cabeçalho, carga útil e sinalizadores opcionais. Dependendo do tipo de mensagem, a carga útil pode ter comprimento variável. Por exemplo, em uma mensagem PUBLISH, a carga útil contém os dados a serem enviados a todos os dispositivos assinantes e o comprimento do campo de dados tem uma relação direta com o tamanho da mensagem. Por padrão, os dispositivos MQTT se conectam na porta 1883 de forma desprotegida ou na porta 8883 quando a criptografia SSL/TLS está habilitada.
Carros inteligentes são um ótimo exemplo de MQTT em ação. À medida que os fabricantes de automóveis adicionam novos recursos para oferecer suporte a tudo, desde diagnósticos remotos e gerenciamento de frotas até pagamentos de combustível e entretenimento, o MQTT se tornou um padrão comum para carros conectados. Ao contrário do protocolo HTTP (Hypertext Transfer Protocol), o MQTT pode manter uma sessão persistente mesmo quando um carro entra e sai de zonas mortas ou se sua conexão muda de torre de celular. O MQTT também oferece suporte a comunicações bidirecionais, facilitando o envio e o recebimento de dados pelo carro e pelo aplicativo em nuvem sem esperar que o outro responda.
HTTP e MQTT são protocolos de rede usados para transmitir dados pela internet. Vamos dar uma olhada nas diferenças entre eles.
Muitos recursos do MQTT o tornam o protocolo ideal para mensagens entre dispositivos IoT (as “coisas” na IoT) e sistemas de backend. Aqui, nos concentramos em quatro características:
O MQTT oferece suporte ao Protocolo de Controle de Transmissão/Protocolo de Internet (TCP/IP) como seu protocolo de transporte subjacente. Este protocolo de rede amplamente utilizado garante que as mensagens sejam enviadas de forma confiável entre clientes e corretores.
Existem vários motivos pelas quais o TCP/IP é considerado confiável e eficiente:
Embora seja o mais comum, o TCP/IP não é a única opção para transporte de mensagens MQTT. O protocolo MQTT também funciona com o User Datagram Protocol (UDP) e WebSockets.
Temos o orgulho de oferecer os seguintes recursos gratuitos para ajudar você a continuar pesquisando como o NGINX pode proteger, equilibrar a carga e fornecer alta disponibilidade para sistemas de IoT baseados em MQTT.