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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Roteamento Eficiente de Mensagens: O broker encaminha mensagens apenas para os clientes interessados, otimizando a entrega e reduzindo a latência.
  6. 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

Brokers

https://mqtt.org/software/