Een protocol voor apparaatcommunicatie kiezen
Met IoT Hub kunnen voor apparaten de volgende protocollen worden gebruikt voor communicatie aan de zijde van het apparaat:
Zie Richtlijnen voor apparaat-naar-cloudcommunicatie en Richtlijnen voor cloud-naar-apparaat-communicatie voor meer informatie over hoe deze protocollen specifieke IoT Hub ondersteunen.
De volgende tabel bevat de aanbevelingen op hoog niveau voor uw keuze van protocol:
| Protocol | Wanneer moet u dit protocol kiezen? |
|---|---|
| MQTT MQTT via WebSocket |
Gebruik op alle apparaten die niet meerdere apparaten (elk met hun eigen referenties per apparaat) via dezelfde TLS-verbinding moeten verbinden. |
| AMQP AMQP via WebSocket |
Gebruik op 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 biedt geen efficiënte manier om server-push te implementeren. Als u HTTPS gebruikt, wordt er door apparaten IoT Hub naar cloud-naar-apparaat-berichten. Deze aanpak is inefficiënt voor zowel het apparaat als IoT Hub. Volgens de huidige HTTPS-richtlijnen moet elk apparaat elke 25 minuten of meer berichten peilen. Als u meer HTTPS uitdeelt, IoT Hub de aanvragen worden IoT Hub ontvangen. MQTT en AMQP ondersteunen server-push bij het ontvangen van cloud-naar-apparaat-berichten. Ze maken het direct pushen van berichten IoT Hub naar het apparaat mogelijk. Als leveringslatentie een probleem is, zijn MQTT of AMQP de beste protocollen om te gebruiken. Https werkt ook voor zelden verbonden apparaten.
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 met meerdere apparaatidentiteiten in één of een pool upstream-verbindingen met IoT Hub. Dergelijke gateways kunnen een protocol gebruiken dat ondersteuning biedt voor meerdere apparaat-id's per verbinding, zoals AMQP, voor hun upstream-verkeer.
Apparaten met weinig resources. De MQTT- en HTTPS-bibliotheken hebben een kleinere footprint dan de AMQP-bibliotheken. Als het apparaat beperkte bronnen heeft (bijvoorbeeld minder dan 1 MB RAM), zijn deze protocollen mogelijk de enige beschikbare protocol-implementatie.
Netwerkkruising. Het standaard AMQP-protocol gebruikt 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.
Nettoladinggrootte. MQTT en AMQP zijn binaire protocollen, wat resulteert in compactere nettoladingen dan HTTPS.
Waarschuwing
Wanneer u HTTPS gebruikt, moet elk apparaat niet vaker dan één keer per 25 minuten zoeken naar cloud-naar-apparaat-berichten. In ontwikkeling kan elk apparaat vaker pollen, indien gewenst.
Belangrijk
De volgende functionaliteit voor apparaten die gebruikmaken van verificatie met X.509-certificeringsinstantie (CA) is nog niet algemeen beschikbaar en de preview-modus moet zijn ingeschakeld:
- HTTPS, MQTT via WebSockets en AMQP via WebSockets-protocollen.
- Bestand uploaden (alle protocollen).
Deze is 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. De keuze van het protocol wordt meestal aangestuurd door de specifieke vereisten van de oplossing. De volgende tabel bevat de uitgaande poorten die open moeten zijn voor een apparaat om een specifiek protocol te kunnen gebruiken:
| Protocol | Poort |
|---|---|
| MQTT | 8883 |
| MQTT via WebSockets | 443 |
| AMQP | 5671 |
| AMQP via WebSockets | 443 |
| HTTPS | 443 |
Nadat u een IoT-hub in een Azure-regio hebt gemaakt, behoudt de IoT-hub hetzelfde IP-adres voor de levensduur van die IoT-hub. Als Microsoft de IoT-hub echter verplaatst naar een andere schaaleenheid om de kwaliteit van de service te behouden, wordt er een nieuw IP-adres toegewezen.
Volgende stappen
Zie Communiceren met uw IoT-hub met behulp van het MQTT-protocol voor meer informatie over het implementeren van IoT Hub MQTT-protocol.