User properties
Eine der wichtigsten Neuerungen in MQTT5 sind die sogenannten User Properties. Hierbei handelt es sich um Key/Value Paare, welche bei nahezu allen MQTT Pakettypen gesetzt werden und zusätzliche Metadaten transportieren können – unabhängig vom eigentlichen Nachrichteninhalt. Es gibt keinerlei Begrenzung bei der Anzahl an User Properties, solange die Maximalgröße einer MQTT Nachricht nicht überschritten wird. Dieses Feature ist ähnlich zu den Key/Value Paaren, wie sie zum Beispiel in einem HTTP Header vorkommen.
Der Vorteil von User Properties liegt in der Entkopplung vom eigentlichen Nachrichteninhalt. So können zum Beispiel Beschreibungsinformationen für den Nachrichteninhalt übermittelt werden, was das Encoding/Decoding des Nachrichteninhalts auf Empfängerseite vereinfacht.
Des Weiteren können mit Hilfe von User Properties auch Routing-Informationen übermittelt werden, sodass einem Empfänger zum Beispiel mitgeteilt wird was er mit dem empfangenen Nachrichteninhalt tun soll.