Share via


Een communicatieprotocol voor apparaten kiezen

Met IoT Hub kunnen voor apparaten de volgende protocollen worden gebruikt voor communicatie aan de zijde van het apparaat:

Notitie

IoT Hub biedt beperkte functieondersteuning voor MQTT. Zie Overzicht van de MQTT-brokerfunctie in Azure Event Grid als uw oplossing ondersteuning nodig heeft voor MQTT v3.1.1 of v5. Zie de sectie MQTT-ondersteuning vergelijken in IoT Hub en Event Grid van Communiceren met een IoT-hub met behulp van het MQTT-protocol voor meer informatie.

Zie Richtlijnen voor apparaat-naar-cloud-communicatie en richtlijnen voor communicatie tussen apparaten en communicatie in de cloud voor informatie over hoe deze protocollen ondersteuning bieden voor specifieke IoT Hub-functies.

De volgende tabel bevat de aanbevelingen op hoog niveau voor uw keuze van protocol:

Protocol Wanneer u dit protocol moet kiezen
MQTT
MQTT via WebSockets
Gebruik op alle apparaten waarvoor geen verbinding met meerdere apparaten is vereist, elk met een eigen referenties per apparaat, via dezelfde TLS-verbinding.
AMQP
AMQP over WebSockets
Gebruik veld- en cloudgateways om te profiteren van multiplexing van verbindingen tussen apparaten.
HTTPS Gebruiken voor apparaten die geen ondersteuning bieden voor andere protocollen.

Houd rekening met de volgende punten wanneer u uw protocol kiest voor communicatie aan de apparaatzijde:

  • Cloud-naar-apparaat-patroon. HTTPS heeft geen efficiënte manier om serverpush te implementeren. Zodoende zullen apparaten, wanneer u HTTPS gebruikt, IoT Hub peilen voor cloud-naar-apparaat-berichten. Deze benadering is inefficiënt voor zowel het apparaat als ioT Hub. Volgens de huidige HTTPS-richtlijnen moet elk apparaat elke 25 minuten of meer berichten controleren. Issuing more HTTPS receives results in IoT Hub throttling the requests. MQTT en AMQP ondersteunen server-push wanneer ze berichten van cloud naar apparaat ontvangen. Ze maken directe pushes van berichten van IoT Hub naar het apparaat mogelijk. Als leveringslatentie een probleem is, zijn MQTT of AMQP de beste protocollen die u kunt gebruiken. Voor zelden verbonden apparaten werkt HTTPS ook.

  • Field gateways. MQTT en HTTPS ondersteunen slechts één apparaat-id (apparaat-id plus referenties) per TLS-verbinding. Daarom worden deze protocollen niet ondersteund voor veldgatewayscenario's waarvoor multiplexing-berichten zijn vereist, waarbij meerdere apparaatidentiteiten worden gebruikt, tussen één verbinding of een pool upstream-verbindingen met IoT Hub. Dergelijke gateways kunnen een protocol gebruiken dat ondersteuning biedt voor meerdere apparaatidentiteiten per verbinding, zoals AMQP, voor hun upstream-verkeer.

  • Apparaten met weinig middelen. De MQTT- en HTTPS-bibliotheken hebben een kleinere footprint dan de AMQP-bibliotheken. Als het apparaat dus beperkte resources levert (bijvoorbeeld minder dan 1 MB RAM), zijn deze protocollen mogelijk de enige protocol-implementatie die beschikbaar is.

  • Network traversal. Het standaard AMQP-protocol maakt gebruik van poort 5671 en MQTT luistert op poort 8883. Het gebruik van deze poorten kan problemen veroorzaken in netwerken die zijn gesloten voor niet-HTTPS-protocollen. Gebruik MQTT via WebSockets, AMQP via WebSockets of HTTPS in dit scenario.

  • Ladingsgrootte. MQTT en AMQP zijn binaire protocollen, wat resulteert in compactere nettoladingen dan HTTPS.

Waarschuwing

Wanneer apparaten het HTTPS-protocol gebruiken, moet elk apparaat maximaal één keer per 25 minuten pollen naar cloud-naar-apparaat-berichten. In ontwikkeling kan elk apparaat, indien gewenst, vaker pollen.

Belangrijk

De volgende functionaliteit voor apparaten die X.509-verificatie (CA) gebruiken, is nog niet algemeen beschikbaar en de preview-modus moet zijn ingeschakeld:

  • HTTPS, MQTT over WebSockets, and AMQP over WebSockets protocols.
  • File uploads (all protocols).

Deze functies zijn algemeen beschikbaar op apparaten die gebruikmaken van X.509-vingerafdrukverificatie.

Port numbers

Apparaten kunnen communiceren met IoT Hub in Azure met behulp van verschillende protocollen. Normaal gesproken bepalen de specifieke vereisten van de oplossing de keuze van het protocol. De volgende tabel bevat de uitgaande poorten die moeten zijn geopend voor een apparaat om een specifiek protocol te kunnen gebruiken:

Protocol Port
MQTT 8883
MQTT via WebSockets 443
AMQP 5671
AMQP over WebSockets 443
HTTPS 443

Het IP-adres van een IoT-hub kan zonder kennisgeving worden gewijzigd. Zie de sectie Aanbevolen procedures van IP-adressen van IoT Hub voor meer informatie over het beperken van de gevolgen van wijzigingen in IP-adressen van IoT Hub in uw IoT-oplossing en -apparaten.

Volgende stappen

Zie Communiceren met een IoT-hub met behulp van het MQTT-protocol voor meer informatie over hoe IoT Hub het MQTT-protocol implementeert.