Choisir un protocole de communication d’appareil

IoT Hub permet aux appareils d’utiliser les protocoles suivants pour les communications côté appareil :

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.