IoT Platform prend en charge les fonctionnalités MQTT 5.0 qui améliorent la transparence et l'interopérabilité entre les appareils et le serveur, notamment le retour d'information sur la connexion, les paquets DISCONNECT envoyés par le serveur et des codes d'erreur améliorés.
Vue d'ensemble
MQTT 5.0 apporte les améliorations suivantes aux interactions entre l'appareil et le cloud :
Retour d'information sur l'établissement de la connexion
Le retour d'information sur la connexion est un mécanisme de négociation. L'appareil envoie des paramètres de connexion lors de l'établissement de la connexion, et le serveur renvoie un paquet CONNACK confirmant les fonctionnalités prises en charge ainsi que les valeurs finales des paramètres.
|
Propriété CONNACK |
Description et plage de valeurs |
Réponse d'IoT Platform |
|
Retain Available |
|
1 |
|
Wildcard Subscription Available |
|
1 |
|
Subscription Identifiers Available |
|
0 |
|
Shared Subscription Available |
|
1 |
|
Topic Alias |
|
1 |
|
Maximum QoS |
|
1 |
|
Server Keep Alive |
Période pendant laquelle le serveur doit envoyer des paquets de heartbeat ou de données pour maintenir la connexion. Si aucun paquet n'est envoyé durant cette période, la connexion est interrompue. Valeurs valides : 30 à 1200. |
Renvoie la période de maintien de la connexion spécifiée par l'appareil. Si la valeur spécifiée par l'appareil dépasse la plage valide, la connexion est interrompue. |
|
Session Expiry Interval |
Durée de conservation de la session après l'interruption de la connexion. Valeurs valides : 0 à 0xFFFFFFFF. |
Renvoie la durée de conservation de la session spécifiée par l'appareil. Valeur par défaut : 0 (si non spécifiée par l'appareil). |
|
Maximum Packet Size |
Valeurs valides : 0 à 0xFFFFFFFF. |
Renvoie toujours 262144 (256 Ko). |
|
Topic Alias Maximum |
Valeurs valides : 0 à 0xFFFFFFFF. |
Renvoie toujours 20. |
Paquets DISCONNECT envoyés par le serveur
Avec MQTT 3.1.1, le serveur ferme la connexion d'un appareil sans explication lorsqu'une règle est violée.
Avec MQTT 5.0, le serveur peut envoyer un paquet DISCONNECT à l'appareil avant de fermer la connexion. Ce paquet contient un code de raison et une chaîne de raison, ce qui simplifie le dépannage.
Améliorations des codes d'erreur
|**Amélioration**
|
**MQTT 3.1**
|
**MQTT 5.0**
| | --- | --- | --- | |
Augmentation du nombre
|
5 codes d'erreur
|
20 codes d'erreur
| |
Chaîne de raison
|
Non prise en charge
|
Ajout de la propriété Reason String pour un diagnostic détaillé des erreurs.
| |
Codes d'erreur pour davantage de types de paquets
|
Seuls les paquets CONNECT renvoient des codes d'erreur.
|
Des codes d'erreur sont renvoyés pour les paquets CONNECT, UNSUBACK, PUBACK, DISCONNECT et autres.
|
Codes d'erreur
|**Décimal**
|
**Hexadécimal**
|
**Nom**
|
**Type de paquet**
| | --- | --- | --- | --- | |
0
|
0x00
|
Success
|
CONNACK, PUBACK, PUBREC, PUBREL, PUBCOMP, UNSUBACK et AUTH
| |
128
|
0x80
|
Unspecified error
|
CONNACK, PUBACK, PUBREC, SUBACK, UNSUBACK et DISCONNECT
| |
129
|
0x81
|
Malformed Packet
|
CONNACK et DISCONNECT
| |
130
|
0x82
|
Protocol Error
|
CONNACK et DISCONNECT
| |
132
|
0x84
|
Unsupported Protocol Version
|
CONNACK
| |
136
|
0x88
|
Server unavailable
|
CONNACK
| |
137
|
0x89
|
Server busy
|
CONNACK et DISCONNECT
| |
138
|
0x8A
|
Banned
|
CONNACK
| |
140
|
0x8C
|
Bad authentication method
|
CONNACK et DISCONNECT
| |
141
|
0x8D
|
Keep Alive timeout
|
DISCONNECT
| |
144
|
0x90
|
Topic Name invalid
|
CONNACK, PUBACK, PUBREC et DISCONNECT
| |
147
|
0x93
|
Receive Maximum exceeded
|
DISCONNECT
| |
148
|
0x94
|
Topic Alias invalid
|
DISCONNECT
| |
149
|
0x95
|
Packet too large
|
CONNACK et DISCONNECT
| |
150
|
0x96
|
Message rate too high
|
DISCONNECT
| |
151
|
0x97
|
Quota exceeded
|
CONNACK, PUBACK, PUBREC, SUBACK et DISCONNECT
| |
152
|
0x98
|
Administrative action
|
DISCONNECT
| |
153
|
0x99
|
Payload format invalid
|
PUBACK, PUBREC et DISCONNECT
| |
154
|
0x9A
|
Retain not supported
|
CONNACK et DISCONNECT
| |
155
|
0x9B
|
QoS not supported
|
CONNACK et DISCONNECT
| |
156
|
0x9C
|
Use another server
|
CONNACK et DISCONNECT
| |
157
|
0x9D
|
Server moved
|
CONNACK et DISCONNECT
| |
158
|
0x9E
|
Shared Subscription not supported
|
SUBACK et DISCONNECT
| |
159
|
0x9F
|
Connection rate exceeded
|
CONNACK et DISCONNECT
|