La fonctionnalité des messages testamentaires est définie dans la spécification MQTT 3.1.1. IoT Platform prend en charge cette fonctionnalité lorsque vous connectez des appareils à IoT Platform via MQTT 5.0. Cette rubrique décrit les messages testamentaires.
Informations générales
Messages testamentaires
Un message testamentaire est envoyé lorsqu'un appareil se connecte à IoT Platform. Si l'appareil se déconnecte d'IoT Platform et ne parvient pas à se reconnecter dans un délai spécifié par le paramètre Will Delay Interval, IoT Platform publie le message testamentaire aux abonnés pour le compte de l'appareil. La valeur par défaut du paramètre Will Delay Interval est 0.
Le contenu d'un message testamentaire est similaire à celui d'un message standard envoyé par un appareil. Il comprend le nom du topic, la charge utile (payload), le niveau QoS, le tag Retain, les propriétés utilisateur et l'intervalle d'expiration du message.
-
La déconnexion d'un appareil du serveur peut être causée par les éléments suivants :
Pannes ou fluctuations du réseau. Si l'appareil ne communique pas avec le serveur pendant une période de persistance de connexion spécifiée, le serveur ferme la connexion.
Coupure de courant sur l'appareil. Le serveur détecte que la connexion est fermée.
Fermeture de la connexion par le serveur lorsque l'appareil tente d'effectuer des opérations non autorisées. Par exemple, l'appareil tente de s'abonner à un topic pour lequel il ne dispose pas des permissions nécessaires.
-
Un message testamentaire d'un appareil est supprimé dans les scénarios suivants :
Après la déconnexion prévue de l'appareil, le message testamentaire est supprimé.
Lorsque l'appareil se déconnecte de manière inattendue et qu'IoT Platform publie le message testamentaire pour son compte, ce dernier est supprimé.
Si vous ne configurez pas le paramètre Message Expiry Interval pour le message testamentaire, celui-ci est supprimé après son expiration.
Il n'est pas possible de mettre à jour un message testamentaire.
Les sessions expirées n'affectent pas les messages testamentaires. Ces messages peuvent être publiés indépendamment du statut des sessions.
Les messages testamentaires prennent en charge la fonctionnalité d'expiration des messages. Si le contenu des messages expire après un certain délai, comme c'est le cas pour les messages liés au contrôle de température, utilisez conjointement la fonctionnalité des messages testamentaires et celle d'expiration des messages. Pour plus d'informations, consultez la section Expiration des messages.
En cas de signal réseau faible ou de connexions instables, nous vous recommandons de configurer le paramètre
WillDelayInterval. Cela évite la publication fréquente de messages testamentaires due aux connexions et déconnexions répétées des appareils.
Scénarios
Analyse des anomalies des appareils
Lorsque le statut d'un appareil connecté à IoT Platform change, par exemple lorsqu'il passe en ligne ou hors ligne, IoT Platform envoie un message relatif au statut de l'appareil aux serveurs métier ou au moteur de règles via le topic: /as/mqtt/status/${productKey}/${deviceName}. Ce message contient uniquement les informations sur le statut de connexion de l'appareil. Si vous souhaitez obtenir davantage de données pour analyser les anomalies des appareils, vous pouvez utiliser les messages testamentaires. Ceux-ci peuvent inclure des informations sur les appareils, telles que les données environnementales.