L'expiration des messages permet à IoT Platform de supprimer automatiquement les messages mis en cache après un intervalle configurable. Cela évite que des commandes obsolètes ne parviennent aux appareils qui se reconnectent avec du retard.
Fonctionnement de l'expiration des messages
Lorsque vous définissez l'intervalle d'expiration des messages (MEI) sur un message, IoT Platform suit la durée de mise en cache de ce dernier. Si le message n'est pas livré avant la fin de l'intervalle, IoT Platform le supprime et ne le transmet pas lors de la reconnexion de l'appareil.
La figure suivante illustre le flux de bout en bout avec un message QoS 1 et un MEI de 5 secondes :

Le serveur métier envoie un message QoS 1 avec un MEI de 5 secondes.
La première tentative d'envoi échoue. L'appareil ne renvoie pas d'accusé de réception (ACK).
Le message expire au bout de 5 secondes et IoT Platform le supprime.
-
Lorsque l'appareil se reconnecte, aucun message ne lui est transmis.
RemarqueÀ l'expiration de la session, IoT Platform supprime tous les messages QoS 1 en attente, quel que soit leur MEI restant.
À l'expiration de la session, les messages conservés ne sont pas supprimés. Pour qu'un message reste disponible après l'écoulement de son MEI, publiez-le en tant que message conservé.
Le MEI s'applique différemment selon le type de message :
|
Type de message |
Comportement à l'expiration du MEI |
|
QoS 1 |
IoT Platform supprime le message mis en cache. Si la session expire également, le message est immédiatement supprimé, indépendamment du MEI restant. |
|
Message conservé |
IoT Platform ne supprime pas le message conservé lorsque la session expire. Le message conservé reste stocké jusqu'à ce que son propre MEI arrive à expiration. |
|
Message Will |
IoT Platform rejette le message Will s'il n'a pas été déclenché et envoyé avant l'expiration du MEI. |
Cas d'utilisation
L'expiration des messages est particulièrement utile lorsque les commandes doivent être exécutées rapidement ou pas du tout.
Contrôle à distance : si vous envoyez une commande pour ouvrir une porte et que l'appareil est temporairement hors ligne, la porte ne doit pas s'ouvrir plusieurs minutes plus tard lorsque la connectivité revient. Définissez un MEI correspondant à la période durant laquelle la commande reste pertinente.
Notifications sensibles au temps : les alertes déclenchées par des lectures de capteurs en temps réel (comme le dépassement d'un seuil de température) perdent rapidement leur valeur. Un MEI empêche l'appareil de recevoir et de traiter une alerte obsolète.