Volba komunikačního protokolu zařízení
IoT Hub umožňuje zařízením používat ke komunikaci ze strany zařízení následující protokoly:
- MQTT
- MQTT přes WebSockets
- Rozšířený protokol řízení front zpráv (AMQP)
- AMQP přes WebSockets
- HTTPS
Poznámka:
IoT Hub má omezenou podporu funkcí pro MQTT. Pokud vaše řešení potřebuje podporu MQTT v3.1.1 nebo v5, doporučujeme podporu MQTT ve službě Azure Event Grid. Další informace najdete v tématu Porovnání podpory MQTT ve službě IoT Hub a Event Gridu.
Informace o tom, jak tyto protokoly podporují konkrétní funkce služby IoT Hub, najdete v pokynech ke komunikaci typu zařízení-cloud a pokyny ke komunikaci typu Cloud-zařízení.
Následující tabulka obsahuje základní doporučení pro váš výběr protokolu:
Protokol | Kdy byste měli zvolit tento protokol |
---|---|
MQTT MQTT přes WebSockets |
Používá se na všech zařízeních, která nevyžadují připojení k více zařízením, z nichž každý má svoje vlastní přihlašovací údaje pro každé zařízení přes stejné připojení TLS. |
AMQP AMQP přes WebSockets |
Pomocí polí a cloudových bran můžete využívat multiplexování připojení mezi zařízeními. |
HTTPS | Používá se pro zařízení, která nepodporují jiné protokoly. |
Při výběru protokolu pro komunikaci na straně zařízení zvažte následující body:
Model cloud-zařízení HTTPS nemá efektivní způsob implementace serverových nabízených oznámení. Pokud například používáte PROTOKOL HTTPS, zařízení se do IoT Hubu dotazují na zprávy typu cloud-zařízení. Tento přístup je pro zařízení i IoT Hub neefektivní. V aktuálních pokynech HTTPS by se každé zařízení mělo dotazovat na zprávy každých 25 minut nebo déle. Vydání dalšího protokolu HTTPS přijímá výsledky omezování požadavků ve službě IoT Hub. MQTT a AMQP podporují nabízení serverů při přijímání zpráv typu cloud-zařízení. Umožňují okamžité nasdílení zpráv ze služby IoT Hub do zařízení. Pokud je latence doručení problém, MQTT nebo AMQP jsou nejlepší protokoly, které se mají použít. U zřídka připojených zařízení funguje i HTTPS.
Brány polí. MQTT a HTTPS podporují pouze jednu identitu zařízení (ID zařízení plus přihlašovací údaje) na připojení TLS. Z tohoto důvodu se tyto protokoly nepodporují ve scénářích brány polí, které vyžadují multiplexingové zprávy pomocí více identit zařízení, a to buď v jednom připojení, nebo ve fondu upstreamových připojení ke službě IoT Hub. Tyto brány můžou pro nadřazený provoz používat protokol, který podporuje více identit zařízení na připojení, jako je AMQP.
Zařízení s nízkými prostředky Knihovny MQTT a HTTPS mají menší nároky než knihovny AMQP. Pokud má zařízení omezené prostředky (například méně než 1 MB paměti RAM), můžou být tyto protokoly jedinou dostupnou implementací protokolu.
Procházení sítě. Standardní protokol AMQP používá port 5671 a MQTT naslouchá na portu 8883. Použití těchto portů může způsobit problémy v sítích, které jsou zavřené pro protokoly jiného typu než HTTPS. V tomto scénáři použijte MQTT přes WebSockets, AMQP přes WebSockets nebo HTTPS.
Velikost datové části MQTT a AMQP jsou binární protokoly, což vede k kompaktnějším datovým částem než HTTPS.
Upozorňující
Při použití protokolu HTTPS by se každé zařízení mělo dotazovat na zprávy typu cloud-zařízení maximálně jednou za 25 minut. Při vývoji se každé zařízení může v případě potřeby dotazovat častěji.
Důležité
Následující funkce pro zařízení, která používají ověřování certifikační autority X.509, ještě není všeobecně dostupná a musí být povolený režim Preview:
- HTTPS, MQTT přes WebSockets a AMQP přes protokoly WebSockets.
- Nahrávání souborů (všechny protokoly)
Tyto funkce jsou obecně dostupné na zařízeních, která používají ověřování kryptografického otisku X.509. Další informace o ověřování X.509 ve službě IoT Hub najdete v tématu Podporované certifikáty X.509.
Čísla portů
Zařízení můžou komunikovat se službou IoT Hub v Azure pomocí různých protokolů. Volba protokolu se obvykle řídí konkrétními požadavky řešení. Následující tabulka uvádí odchozí porty, které musí být otevřené pro zařízení, aby bylo možné používat konkrétní protokol:
Protokol | Port |
---|---|
MQTT | 8883 |
MQTT přes WebSockets | 443 |
AMQP | 5671 |
AMQP přes WebSockets | 443 |
HTTPS | 443 |
IP adresa centra IoT se může bez předchozího upozornění změnit. Informace o tom, jak zmírnit účinky změn IP adres služby IoT Hub na vaše řešení IoT a zařízení, najdete v části Osvědčené postupy IP adres služby IoT Hub.
Další kroky
Další informace o tom, jak IoT Hub implementuje protokol MQTT, najdete v tématu Komunikace se službou IoT Hub pomocí protokolu MQTT.