Een communicatieprotocol voor apparaten kiezen
Met IoT Hub kunnen voor apparaten de volgende protocollen worden gebruikt voor communicatie aan de zijde van het apparaat:
- MQTT
- MQTT via WebSockets
- Advanced Message Queuing Protocol (AMQP)
- AMQP via WebSockets
- HTTPS
Notitie
IoT Hub biedt beperkte functieondersteuning voor MQTT. Als voor uw oplossing MQTT v3.1.1- of v5-ondersteuning nodig is, wordt MQTT-ondersteuning aanbevolen in Azure Event Grid. Zie MQTT-ondersteuning vergelijken in IoT Hub en Event Grid 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 via 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. Als u HTTPS gebruikt, peilen apparaten IoT Hub 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. Het uitgeven van meer HTTPS ontvangt resultaten in ioT Hub die de aanvragen beperkt. MQTT- en AMQP-ondersteuningsserverpush bij het ontvangen van cloud-naar-apparaat-berichten. 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.
Veldgateways. 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.
Lage resourceapparaten. De MQTT- en HTTPS-bibliotheken hebben een kleinere footprint dan de AMQP-bibliotheken. Als het apparaat beperkte resources heeft (bijvoorbeeld minder dan 1 MB RAM), zijn deze protocollen mogelijk de enige protocol-implementatie die beschikbaar is.
Netwerkkruising. 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.
Grootte van nettolading. MQTT en AMQP zijn binaire protocollen, wat resulteert in compactere nettoladingen dan HTTPS.
Waarschuwing
Wanneer u HTTPS gebruikt, 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 via WebSockets en AMQP via WebSockets-protocollen.
- Bestandsuploads (alle protocollen).
Deze functies zijn algemeen beschikbaar op apparaten die gebruikmaken van X.509-vingerafdrukverificatie. Zie Ondersteunde X.509-certificaten voor meer informatie over X.509-verificatie met IoT Hub.
Poortnummers
Apparaten kunnen communiceren met IoT Hub in Azure met behulp van verschillende protocollen. Normaal gesproken wordt de keuze van het protocol aangestuurd door de specifieke vereisten van de oplossing. 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 via 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 uw IoT-hub met behulp van het MQTT-protocol voor meer informatie over hoe IoT Hub het MQTT-protocol implementeert.