Eszközkommunikációs protokoll kiválasztása

Az IoT Hub az alábbi protokollok használatát teszi lehetővé az eszközoldali kommunikációhoz:

Feljegyzés

Az IoT Hub korlátozott funkciótámogatással rendelkezik az MQTT-hez. Ha a megoldáshoz MQTT 3.1.1-es vagy v5-ös támogatás szükséges, javasoljuk az MQTT támogatását az Azure Event Gridben. További információ: MQTT-támogatás összehasonlítása az IoT Hubban és az Event Gridben.

További információ arról, hogy ezek a protokollok hogyan támogatják az IoT Hub adott funkcióit, tekintse meg az eszközről a felhőbe irányuló kommunikációs útmutatót és a felhőalapú kommunikációval kapcsolatos útmutatást.

Az alábbi táblázat magas szintű javaslatokat tartalmaz a választott protokollhoz:

Protokoll Mikor érdemes ezt a protokollt választania?
MQTT
MQTT WebSocketen keresztül
Minden olyan eszközön használható, amelyhez nincs szükség több eszközhöz való csatlakozásra, mindegyikhez saját eszköznkénti hitelesítő adatokkal, ugyanazon a TLS-kapcsolaton keresztül.
AMQP
AMQP WebSocketen keresztül
A helyszíni és a felhőbeli átjárók használatával kihasználhatja az eszközök közötti kapcsolat multiplexálásának előnyeit.
HTTPS Más protokollokat nem támogató eszközökhöz használható.

Az eszközoldali kommunikáció protokolljának kiválasztásakor vegye figyelembe a következő szempontokat:

  • Felhő–eszköz minta. A HTTPS-nek nincs hatékony módja a kiszolgáló leküldésének implementálására. Így a HTTPS használatakor az eszközök lekérdezik az IoT Hubot a felhőből az eszközre irányuló üzenetekhez. Ez a megközelítés nem hatékony mind az eszköz, mind az IoT Hub esetében. Az aktuális HTTPS-irányelvek szerint minden eszköznek 25 percenként vagy annál tovább kell lekérdeznie az üzeneteket. Ha több HTTPS-t ad ki, akkor az IoT Hub szabályozza a kéréseket. Az MQTT és az AMQP támogatja a kiszolgáló leküldését a felhőből az eszközre irányuló üzenetek fogadásakor. Lehetővé teszik az üzenetek azonnali leküldését az IoT Hubról az eszközre. Ha a kézbesítés késése aggodalomra ad okot, az MQTT vagy az AMQP a legjobban használható protokoll. Ritkán csatlakoztatott eszközök esetén a HTTPS is működik.

  • Mezőátjárók. Az MQTT és a HTTPS csak egyetlen eszközidentitást (eszközazonosítót és hitelesítő adatokat) támogat TLS-kapcsolatonként. Ezért ezek a protokollok nem támogatottak olyan mezőátjáró-forgatókönyvekben, amelyek több eszközidentitást használó multiplexálási üzeneteket igényelnek egyetlen kapcsolaton vagy az IoT Hub felé irányuló felsőbb rétegbeli kapcsolatok készletén keresztül. Az ilyen átjárók olyan protokollt használhatnak, amely kapcsolatonként több eszközidentitást támogat, például az AMQP-t a felsőbb rétegbeli forgalomhoz.

  • Alacsony erőforrású eszközök. Az MQTT- és HTTPS-kódtárak kisebb erőforrásigényűek, mint az AMQP-kódtárak. Ilyen esetben, ha az eszköz korlátozott erőforrásokkal rendelkezik (például kevesebb, mint 1 MB RAM), ezek a protokollok lehetnek az egyetlen elérhető protokoll-implementáció.

  • Hálózati bejárás. A standard AMQP protokoll az 5671-es portot használja, az MQTT pedig a 8883-at figyeli. Ezeknek a portoknak a használata problémákat okozhat a nem HTTPS protokollok által bezárt hálózatokban. Ebben a forgatókönyvben az MQTT használata WebSocketeken, AMQP websocketeken vagy HTTPS-en keresztül.

  • Hasznos adat mérete. Az MQTT és az AMQP bináris protokollok, amelyek a HTTPS-nél kompaktabb hasznos adatokat eredményeznek.

Figyelmeztetés

HTTPS használata esetén minden eszköznek 25 percenként legfeljebb egyszer kell lekérdeznie a felhőből az eszközre irányuló üzeneteket. A fejlesztés során minden eszköz gyakrabban kérdezhet le, ha szükséges.

Fontos

Az X.509 hitelesítésszolgáltatói (CA) hitelesítést használó eszközökhöz az alábbi funkciók még nem érhetők el általánosan, és engedélyezni kell az előzetes verziós módot:

  • HTTPS, MQTT over WebSockets, és AMQP over WebSockets protokollok.
  • Fájlfeltöltések (minden protokoll).

Ezek a funkciók általánosan elérhetők az X.509 ujjlenyomat-hitelesítést használó eszközökön. Az IoT Hub x.509-hitelesítésével kapcsolatos további információkért lásd a támogatott X.509-tanúsítványokat.

Portszámok

Az eszközök különböző protokollok használatával kommunikálhatnak az Azure-beli IoT Hubbal. A protokoll kiválasztását általában a megoldás konkrét követelményei határozzák meg. Az alábbi táblázat felsorolja azokat a kimenő portokat, amelyeknek nyitva kell lenniük ahhoz, hogy egy eszköz egy adott protokollt használhasson:

Protokoll Kikötő
MQTT 8883
MQTT WebSocketen keresztül 443
AMQP 5671
AMQP WebSocketen keresztül 443
HTTPS 443

Az IoT Hub IP-címe értesítés nélkül változhat. Az IoT Hub IP-címváltozásainak az IoT Hub-megoldásra és -eszközökre gyakorolt hatásainak mérsékléséhez tekintse meg az IoT Hub IP-címeinek ajánlott eljárásait ismertető szakaszt.

Következő lépések

További információ az IoT Hub MQTT protokoll implementálásáról: Kommunikáció az IoT Hubbal az MQTT protokoll használatával.