Choisir un protocole de communication d’appareil
IoT Hub permet aux appareils d’utiliser les protocoles suivants pour les communications côté appareil :
- MQTT
- MQTT sur WebSockets
- Advanced Message Queuing Protocol (AMQP)
- AMQP sur WebSockets
- HTTPS
Notes
IoT Hub offre une prise en charge limitée des fonctionnalités pour MQTT. Si votre solution a besoin d’une prise en charge de MQTT v3.1.1 ou v5, nous vous recommandons la prise en charge de MQTT dans Azure Event Grid. Pour plus d’informations, consultez l’article Comparer la prise en charge de MQTT dans IoT Hub et Event Grid.
Pour plus d’informations sur la façon dont ces protocoles prennent en charge les fonctionnalités spécifiques d’IoT Hub, consultez Recommandations sur les communications appareil-à-cloud et Conseils pour les communications cloud-à-appareil.
Le tableau suivant fournit des recommandations de haut niveau pour votre choix de protocole :
Protocol | Quand choisir ce protocole |
---|---|
MQTT MQTT sur WebSockets |
À utiliser sur tous les appareils qui n’ont pas besoin de se connecter à plusieurs appareils, chacun ayant ses propres informations d’identification par appareil, sur la même connexion TLS. |
AMQP AMQP sur WebSockets |
Utiliser sur les passerelles de champ et de cloud pour tirer parti du multiplexage de connexion sur les appareils. |
HTTPS | À utiliser pour les appareils qui ne peuvent pas prendre en charge d’autres protocoles. |
Prenez en compte les points suivants lorsque vous choisissez votre protocole pour les communications côté appareil :
Modèle Cloud vers appareil. Le protocole HTTPS ne dispose pas d’un moyen efficace de mettre en œuvre la transmission des messages par le serveur. Ainsi, quand vous utilisez HTTPS, les appareils interrogent IoT Hub pour rechercher les messages cloud-à-appareil. Cette approche est inefficace pour l’appareil et pour IoT Hub. Conformément aux recommandations actuelles concernant HTTP,S chaque appareil doit interroger la présence de messages toutes les 25 minutes ou plus. L’émission d’un nombre plus élevé de réceptions HTTPS conduit IoT Hub à limiter les demandes. AMQP et MQTT prennent en charge les notifications Push sur le serveur lors de la réception de messages cloud-à-appareil. Ils permettent d’obtenir des notifications Push immédiates pour les messages IoT Hub-à-appareil. Si la latence de remise pose problème, MQTT ou AMQP sont les meilleurs protocoles à utiliser. Pour les appareils rarement connectés, HTTPS fonctionne aussi bien.
Passerelles de champ. MQTT et HTTPS prennent uniquement en charge une identité d’appareil unique (ID d’appareil et informations d’identification) par connexion TLS. Pour cette raison, ces protocoles ne sont pas pris en charge pour les scénarios de passerelle de champ qui nécessitent le multiplexage de messages à l’aide de plusieurs identités d’appareil, sur une seule connexion ou un pool de connexions en amont à IoT Hub. Ces passerelles peuvent utiliser un protocole qui prend en charge plusieurs identités d’appareil par connexion, comme AMQP, pour leur trafic en amont.
Appareils faibles en ressources. Les bibliothèques MQTT et HTTPS sont moins encombrantes que les bibliothèques AMQP. Par conséquent, si l’appareil dispose de ressources limitées (par exemple, moins de 1 Mo de mémoire vive (RAM)), ces protocoles sont peut-être la seule implémentation de protocole disponible.
Traversée réseau. Le protocole AMQP standard utilise le port 5671 tandis que MQTT écoute sur le port 8883. L’utilisation de ces ports peut entraîner des problèmes dans les réseaux fermés aux protocoles autres que HTTPS. Utilisez MQTT sur WebSockets, AMQP sur WebSockets ou HTTPS dans ce scénario.
Taille de charge utile. MQTT et AMQP sont des protocoles binaires qui génèrent des charges utiles plus compactes que HTTPS.
Avertissement
Quand vous utilisez HTTPS, chaque appareil doit interroger les messages cloud-à-appareil pas plus d’une fois toutes les 25 minutes. Pendant le développement, chaque appareil peut les interroger plus fréquemment, le cas échéant.
Important
Les fonctionnalités suivantes pour les appareils qui utilisent l’authentification par l’autorité de certification X.509 ne sont pas encore disponibles, et le mode aperçu doit être activé :
- protocoles HTTPS, MQTT sur WebSockets, et AMQP sur WebSockets.
- Chargements de fichiers (tous les protocoles).
Ces fonctionnalités sont généralement disponibles sur les appareils qui utilisent l’authentification par empreinte X.509. Pour en savoir plus sur l’authentification X.509 avec IoT Hub, consultez les certificats X.509 pris en charge.
Numéros de ports
Les appareils peuvent communiquer avec IoT Hub dans Azure à l’aide de divers protocoles. En règle générale, le choix du protocole dépend des exigences spécifiques de la solution. Le tableau suivant répertorie les ports de sortie qui doivent être ouverts pour qu’un appareil puisse utiliser un protocole spécifique :
Protocol | Port |
---|---|
MQTT | 8883 |
MQTT sur WebSockets | 443 |
AMQP | 5671 |
AMQP sur WebSockets | 443 |
HTTPS | 443 |
L’adresse IP d’un hub IoT peut être modifiée sans préavis. Pour savoir comment atténuer les effets des modifications d’adresse IP de hub IoT sur votre solution et vos appareils IoT, consultez la section Bonnes pratiques d’Adresses IP IoT Hub.
Étapes suivantes
Pour plus d’informations sur la façon dont IoT Hub implémente le protocole MQTT, consultez Communication avec votre IoT Hub à l’aide du protocole MQTT.