Nous envisageons AWS IoT pour un projet à venir impliquant des périphériques avec des connexions réseau non fiables. Une exigence est d'envoyer des commandes aux périphériques. Les commandes doivent être livrées de manière fiable (ack'd) et les périphériques doivent également signaler le succès/l'échec lorsque les commandes sont terminées plus tard. Il semble que la simple publication de commandes sur un sujet MQTT ne garantira pas la livraison du message, étant donné qu'AWS ne prend pas en charge les sessions persistantes. Est-ce correct?Envoyer des commandes AWS IoT du cloud à l'appareil via des connexions non fiables
Nous avons spéculé à propos de piquer la commande dans un tableau de commandes dans l'état «désiré» de l'ombre de l'appareil. Le dispositif peut alors recevoir la commande en répliquant la commande dans l'état 'signalé' de l'ombre, et signaler le succès/l'échec en définissant un champ de résultat dans la commande à l'état 'signalé'. Compte tenu de notre manque d'expérience avec AWS IoT, cela semble-t-il être une approche sensée? Ou peut-on voir quelque chose de plus propre? Une chose désagréable à ce sujet est que l'ombre accumule des commandes terminées, ce qui signifie probablement que j'aurai éventuellement besoin d'une sorte de ménage pour supprimer les commandes terminées pour garder l'ombre à une taille raisonnable. Enfin, quelqu'un sait-il comment l'utilisation de la bande passante est intelligente - si mon serveur ajoute un élément à un tableau de cent éléments imbriqués profondément dans l'état «désiré», combien de données circule réellement sur le fil? Et de même quand mon appareil déplace l'élément dans l'état 'reporté'.
Il est recommandé de considérer toute connexion réseau comme «non fiable». Dans l'espace IoT, toutes les connexions aux périphériques doivent être considérées comme «non fiables». –
oui. C'est vraiment dommage qu'Amazon n'ait pas complètement mis en œuvre le MQTT: il a été bien conçu et laisser des traces semble un peu faible. –