Connection acknowledgement
Die neu eingeführten ConnAck Return Codes ermöglichen es einem Message Broker dem Client anzuzeigen welche MQTT-Funktionen er unterstützt. Diese Information wird beim ConnAck Vorgang vom Message Broker an den Client übermittelt. Das folgende Bild veranschaulicht diesen Vorgang in vereinfachter Darstellung.

Im folgenden Bild wird der Verbindungsaufbau zwischen Client und Message Broker auf TCP-Ebene dargestellt:

Die folgenden Informationen können beim Connection Acknowledgement vom Message Broker an den Client übermittelt werden.
Eigenschaft | Beschreibung |
---|---|
Retain available | Gibt an, ob der Message Broker Retain-Nachrichten unterstützt. |
Server KeepAlive | Gibt die vom Server zugewiesene KeepAlive-Zeit an. |
Shared subscriptions available | Gibt an, ob der Message Broker Shared Subscriptions unterstützt. |
Wildcard subscriptions available | Gibt an, ob der Message Broker Wildcard Subscriptions unterstützt, z.B. Subscriptions auf ein # oder + Topic. |
Authentication data | Beinhaltet die Authentifizierungsdaten, abhängig von der verwendeten Authentifizierungsmethode. |
Maximum packet size | Gibt die maximale Paketgröße des Control Pakets an. Wenn dieser Wert nicht angegeben ist, dann ist keine Maximalgröße explizit gesetzt. |
Maximum QoS | Gibt den maximalen QoS Level an, den der Message Broker unterstützt. Einige Message Broker Implementierungen unterstützen zum Beispiel kein QoS 2. |
Reason code | Optionaler Reason Code, welchen der Message Broker im Rahmen des ConnAck Verfahrens an den Client übermitteln kann. Im Zusammenspiel mit der Server Reference (s.u.) kann der Message Broker dem Client hierüber z.B. mitteilen, dass er temporär oder permanent nicht erreichbar und/oder unter einer neuen Adresse erreichbar ist. |
Maximum receive | Der Server verwendet diese Eigenschaft, um die Anzahl an QoS1 und QoS2 Publishes zu limitieren, die er für den Client bereit ist gleichzeitig zu verarbeiten. |
Session expiry interval | Der Server kann hierüber den Client informieren, dass er ein anderes Session Expiry Interval verwendet als ursprünglich vom Client angefordert. |
Response info | Optionale Rückgabeinformationen vom Message Broker an den Client. Ein Anwendungsfall hierfür kann zum Beispiel sein, dass der Broker dem Client einen „Topic-Bereich“ mitteilt der dem Client zugewiesen wurde und auf den er zugreifen kann. |
Maximum topic alias | Gibt den maximalen Wert an, der für einen Topic Alias verwendet werden kann. |
Assigned client ID | Gibt die vom Message Broker zugewiesene ClientID zurück, sofern der Client keine eigene ClientID angegeben hat. |
Server reference | Optionale (Adress-) Referenz auf einen weiteren Message Broker, z.B. bei Reason Code 0x9C oder 0x9D (Server unavailable, Server has moved). |
User Properties | User Properties sind Key/Value Paare, welche an die PublishProperties angehängt werden können. Die Bedeutung der UserProperties ist nicht Bestandteil der MQTT5 Spezifikation und somit applikationsspezifisch. |