Protocolo de comunicação no padrão Pub/Sub bastante usado em IoT.
Porta padrão: 1883
Latência
O MQTT é um protocolo de baixa latência por vários motivos:
- Modelo Publish-Subscribe: Utiliza um modelo de pub/sub, onde a comunicação é mediada por um broker central, evitando a necessidade de conexões ponto a ponto.
- Baixa Sobrecarga do Protocolo: Com um cabeçalho mínimo e um formato binário, o MQTT transmite mensagens de forma rápida e eficiente.
- Conexões Persistentes: Mantém uma conexão TCP aberta e usa um mecanismo de keep-alive, evitando a sobrecarga de abrir e fechar conexões.
- Níveis de Qualidade de Serviço (QoS): O MQTT oferece três níveis de QoS que controlam a entrega de mensagens:
- QoS 0 (No máximo uma vez): A mensagem é enviada sem confirmação, o que proporciona a menor latência, ideal para dados onde a perda ocasional é aceitável.
- QoS 1 (Pelo menos uma vez): A mensagem é entregue pelo menos uma vez, com confirmação. Pode haver duplicações, mas garante a entrega com um pouco mais de latência.
- QoS 2 (Exatamente uma vez): Garante que a mensagem seja entregue exatamente uma vez, evitando duplicações. Esse nível tem a maior sobrecarga e latência, mas é o mais confiável.
- Roteamento Eficiente de Mensagens: O broker encaminha mensagens apenas para os clientes interessados, otimizando a entrega e reduzindo a latência.
- Payloads Binários: Suporta dados binários diretamente, evitando a necessidade de codificação extra.
Em comparação com protocolos da web como WebSockets, o MQTT é mais eficiente em ambientes de recursos limitados ou redes instáveis, graças ao seu design otimizado e flexibilidade na escolha de QoS para equilibrar latência e confiabilidade.
Plataformas
AWS IoT Core
Página que fala sobre: https://aws.amazon.com/pt/what-is/mqtt/
EMQ
Soluções com bom preço no Pay as You Go.
Pagina que fala sobre: https://www.emqx.com/en/blog/esp32-connects-to-the-free-public-mqtt-broker