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:
Informace o tom, jak tyto protokoly podporují specifické IoT Hub, najdete v tématu Pokyny ke komunikaci mezi zařízeními a Pokyny ke komunikaci mezi cloudem a zařízením.
Následující tabulka obsahuje základní doporučení pro váš výběr protokolu:
| Protokol | Kdy zvolit tento protokol |
|---|---|
| MQTT MQTT přes WebSocket |
Používejte na všech zařízeních, která nevyžadují připojení více zařízení (každé s vlastními přihlašovacími údaji pro zařízení) přes stejné připojení TLS. |
| AMQP AMQP přes WebSocket |
Používejte u bran v terénu a v cloudu, abyste využili výhod multiplexingu připojení napříč 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, jak implementovat nabízená oznámení serveru. Pokud používáte PROTOKOL HTTPS, zařízení se tak IoT Hub na zprávy z cloudu do zařízení. Tento přístup je neefektivní pro zařízení i IoT Hub. Podle aktuálních pokynů HTTPS by se každé zařízení mělo dotazovat na zprávy každých 25 minut nebo déle. Pokud vystavíte více protokolu HTTPS, IoT Hub omezování požadavků. MQTT a AMQP podporují nabízená oznámení serveru při přijímání zpráv z cloudu do zařízení. Umožňují okamžité odesílání zpráv z IoT Hub do zařízení. Pokud se týká latence doručení, jsou nejlepší protokoly, které je možné použít, MQTT nebo AMQP. U zřídka připojených zařízení funguje také HTTPS.
Brány pole. MQTT a HTTPS podporují jenom jednu identitu zařízení (ID zařízení a přihlašovací údaje) na připojení TLS. Z tohoto důvodu se tyto protokoly nepodporují ve scénářích bran polí, které vyžadují multiplexing zpráv pomocí více identit zařízení v rámci jednoho nebo fondu upstreamových připojení k IoT Hub. Tyto brány mohou pro svůj upstreamový 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.
Network traversal. 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 uzavřeny pro jiné protokoly 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, které mají za následek kompaktnější datové části než HTTPS.
Upozornění
Při použití protokolu HTTPS by se každé zařízení mělo dotazovat na zprávy z cloudu do zařízení až 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í autoritou X.509, ještě nejsou obecně dostupné a musí být povolený režim náhledu:
- HTTPS, MQTT přes WebSockets a protokoly AMQP přes WebSockets.
- Nahrání souborů (všechny protokoly)
Je 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 s IoT Hub najdete v tématu Podporované certifikáty X.509.
Čísla portů
Zařízení mohou komunikovat s 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é, aby zařízení 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 |
Po vytvoření centra IoT v oblasti Azure si IoT Hub zachová stejnou IP adresu po celou dobu životnosti tohoto centra IoT. Pokud ale Microsoft přesune centrum IoT do jiné jednotky škálování, aby zachovala kvalitu služby, přiřadí se mu nová IP adresa.
Další kroky
Další informace o tom, IoT Hub implementuje protokol MQTT, najdete v tématu Komunikace se službou IoT Hub pomocí protokolu MQTT.