Le due versioni insieme
MQTT 3.1.1 e MQTT 5.0 girano contemporaneamente sulla stessa porta, e i client dell'una o dell'altra versione si scambiano messaggi liberamente. Il codec codifica e decodifica tutti i 15 tipi di pacchetto e verifica i limiti del Variable Byte Integer, le proprietà duplicate e i bit riservati.
QoS 0, 1 e 2
Handshake completi, soppressione dei duplicati in QoS 2 e riconsegna degli scambi rimasti in sospeso dopo una riconnessione. Le code offline delle sessioni persistenti sopravvivono al riavvio del broker.
Retain e Last Will
Un archivio di messaggi ritenuti con svuotamento tramite payload vuoto, anche di interi rami, oltre a Retain Handling 0/1/2 e Retain As Published. Il testamento viene inviato in tutti gli scenari di disconnessione, incluso il Will Delay Interval della versione 5.
Capacità della versione 5
Alias dei topic nei due sensi, Session Expiry, Receive Maximum e controllo di flusso, Maximum Packet Size, identificatori di sottoscrizione, sottoscrizioni condivise tramite $share, No Local, Message Expiry, Payload Format Indicator con verifica UTF-8, Content Type, Response Topic, Correlation Data, User Properties, codici di motivo in ogni pacchetto, DISCONNECT lato server e il pacchetto AUTH.
Topic di sistema $SYS
Versione, tempo di attività e contatori di client, messaggi, byte ed errori vengono pubblicati come messaggi ritenuti. Il ramo è chiuso per impostazione predefinita: i caratteri jolly non raggiungono i topic $, ai client anonimi è negato l'intero spazio dei nomi, e un interruttore nelle impostazioni disattiva del tutto la pubblicazione.