Cloud IoT Core accepte deux protocoles de connexion et de communication pour les appareils: MQTT et HTTP. Les appareils communiquent avec Cloud IoT Core via un pont MQTT ou HTTP. Le pont MQTT/HTTP est un composant central de Cloud IoT Core, comme illustré dans la présentation des composants.
Lorsque vous créez un registre d'appareils, vous sélectionnez des protocoles à activer : MQTT, HTTP ou les deux.
MQTT est un protocole standard de publication et d'abonnement qui est fréquemment utilisé et compatible avec les appareils intégrés. Il est également courant dans les interactions de machine à machine.
HTTP est un protocole "sans connexion" : avec le pont HTTP, les appareils ne maintiennent pas de connexion à Cloud IoT Core. Au lieu de cela, ils envoient des requêtes et reçoivent des réponses. Cloud IoT Core n'est compatible qu'avec le protocole HTTP 1.1 (et non la version 2.0).
Le tableau suivant compare le fonctionnement des deux protocoles dans Cloud IoT Core :
Pont MQTT | Pont HTTP |
---|---|
La connexion de l'appareil est maintenue | Sans connexion (demande/réponse) |
Connexion TCP full-duplex | Connexion TCP semi-duplex |
JWT est envoyé dans le champ du mot de passe du message CONNECT . |
Le jeton JWT est envoyé dans l'en-tête Authorization de la requête HTTP |
Les événements de télémétrie sont transférés vers Cloud Pub/Sub | Les événements de télémétrie sont transférés vers Cloud Pub/Sub |
L'état de la connexion de l'appareil est signalé | Aucun état de connexion de l'appareil n'est signalé |
Les configurations des appareils sont propagées via des abonnements | Les configurations d'appareil doivent être explicitement demandées (via les sondages) |
La configuration la plus récente (récente ou non) est toujours reçue par les appareils sur abonnement | Les appareils peuvent spécifier que seules les configurations plus récentes doivent être reçues |
Les configurations d'appareil sont confirmées (accusés de réception) lors de l'utilisation de QoS 1 | Aucun ACK explicite pour les configurations d'appareil |
L'heure de la dernière pulsation de l'appareil est conservée | Aucune donnée de pulsation sur l'appareil |
Vous pouvez également prendre en compte les fonctionnalités générales suivantes de chaque protocole :
MQTT | HTTP |
---|---|
|
|
Les deux ponts utilisent l'authentification par appareil à clé publique (asymétrique) et des jetons Web JSON (JWT). Pour en savoir plus, consultez la section sur la sécurité des appareils.