Guias

Versões do protocolo MQTT

Guia detalhado das versões MQTT: MQTT 3.1, MQTT 3.1.1, MQTT 5.0, MQTT-SN, compatibilidade, recursos e migração.

Versões do protocolo

Versões do protocolo MQTT

As versões MQTT não são apenas nomes históricos. Elas definem o pacote CONNECT, compatibilidade com brokers, diagnóstico de erros, vida de sessão, metadados de mensagens e observabilidade. Na prática, compare MQTT 3.1, MQTT 3.1.1, MQTT 5.0 e o protocolo relacionado MQTT-SN. Em maio de 2026, o diretório oficial OASIS lista MQTT 3.1.1 e MQTT 5.0 como padrões principais, não MQTT 5.1.

Resposta rápida

  • Escolha MQTT 5.0 para sistemas novos com reason codes, properties, expiração de mensagem, request-response, controle de fluxo ou melhor diagnóstico.
  • Use MQTT 3.1.1 como base de compatibilidade para dispositivos antigos, módulos baratos, SDKs existentes e ambientes industriais.
  • Trate MQTT 3.1 como compatibilidade histórica, não como alvo de implementação nova.
  • Use MQTT-SN somente quando a rede exigir sensores de baixo consumo ou links não TCP/IP.
VersãoStatusNívelMelhor usoGuia para novo projeto
MQTT 3.1Histórico3Dispositivos legacy, brokers antigos, compatibilidade IBM inicialSó se o legado exigir
MQTT 3.1.1OASIS / ISO4Compatibilidade IoT ampla, gateways, telemetria leveBase segura
MQTT 5.0OASIS5Brokers modernos, cloud, multi-tenant e diagnósticoPreferido para sistemas novos
MQTT-SN 1.2Especificação relacionadaIndependenteRedes de sensores, não TCP/IP, dispositivos restritosSó se a rede exigir

MQTT 3.1: versão histórica para compatibilidade legacy

MQTT 3.1 é a base anterior ao OASIS e já trazia client, broker, CONNECT, PUBLISH, SUBSCRIBE, QoS, retain, will, keep alive e topic filters.

Hoje ele ajuda a entender protocol names antigos, pacotes CONNECT legados e modos de compatibilidade em brokers.

Não escolha MQTT 3.1 para produto novo, exceto quando firmware ou gateway de campo não puder ser atualizado.

Pontos de verificação

  • Confirme suporte MQTT 3.1 no broker.
  • Inspecione protocol name e protocol level no CONNECT.
  • Não confunda negociação de versão com problema de rede.

MQTT 3.1.1: base prática de compatibilidade

MQTT 3.1.1 é a versão padronizada mais difundida em dispositivos IoT, gateways, brokers open source, serviços cloud e clientes WebSocket.

Ela ainda é suficiente para publish, subscribe, QoS, retain e last will.

Suas limitações aparecem em produção: erros pouco detalhados, sem properties padrão, menos controle de sessão, expiração, flow control e diagnósticos de disconnect.

Quando manter 3.1.1

  • SDKs ou módulos sem MQTT 5.0.
  • Modelo de mensagens simples.
  • Compatibilidade máxima é prioridade.
  • Atualização em campo é cara.

MQTT 5.0: versão moderna para novos sistemas

MQTT 5.0 mantém publish/subscribe e adiciona properties e reason codes à conexão, publish, subscribe, confirmações e disconnect.

Properties cobrem session expiry, message expiry, packet size, receive maximum, topic alias, response topic, correlation data, user properties e content type.

Reason codes ajudam a separar autenticação, autorização, pacote grande demais, migração de servidor e disconnect administrativo.

Recursos importantes

  • Reason codes para diagnóstico.
  • Properties para metadados.
  • Message Expiry contra comandos obsoletos.
  • Receive Maximum e Maximum Packet Size para proteção.
  • Response Topic e Correlation Data para request-response.

MQTT-SN: protocolo relacionado para sensores

MQTT-SN não substitui MQTT sobre TCP. Ele leva publish/subscribe a redes não TCP/IP e sensores muito limitados.

Normalmente há um gateway que traduz endereços curtos e Topic IDs para um broker MQTT comum.

Se TCP/TLS ou WebSocket funciona bem, normalmente você não precisa de MQTT-SN.

Como escolher

  • Cloud IoT e WebSocket: MQTT 3.1.1 ou 5.0.
  • Não TCP/IP ou dispositivos com sono profundo: avalie MQTT-SN.
  • Integração com broker existente: desenhe bem o gateway MQTT-SN.

Migrar de MQTT 3.1.1 para MQTT 5.0

  1. Verifique suporte no broker, SDKs, gateways, cloud e ferramentas de teste.
  2. Comece por reason codes, DISCONNECT reason, message expiry, session expiry e maximum packet size.
  3. Mantenha semântica 3.1.1 primeiro; adote User Properties, Response Topic e Topic Alias aos poucos.
  4. Em frotas mistas, migre por tenant, produto ou geração de firmware.

FAQ

MQTT 5.0 é compatível com MQTT 3.1.1?

Eles compartilham publish/subscribe, mas o protocol level do CONNECT é diferente. O broker pode aceitar ambos, mas cada sessão usa uma versão.

Existe MQTT 5.1?

Em maio de 2026, o OASIS lista MQTT 3.1.1 e MQTT 5.0 como padrões principais, não MQTT 5.1.

Todo projeto novo deve usar MQTT 5.0?

Não necessariamente. Se dispositivos e plataforma suportam, 5.0 é melhor padrão. Se o campo só suporta 3.1.1, essa é a opção pragmática.

Referências oficiais