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.
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.