Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa IoT Hub zezwala na używanie następujących protokołów na potrzeby komunikacji po stronie urządzenia:
- MQTT
- MQTT przez WebSocket
- Advanced Message Queuing Protocol (AMQP)
- AMQP przez WebSocket
- HTTPS
Uwaga
Usługa IoT Hub zapewnia ograniczoną obsługę funkcji MQTT. Jeśli twoje rozwiązanie wymaga obsługi protokołu MQTT w wersji 3.1.1 lub 5, zobacz Omówienie funkcji brokera MQTT w usłudze Azure Event Grid. Aby uzyskać więcej informacji, zobacz sekcję Compare MQTT support in IoT Hub and Event Grid (Porównanie obsługi protokołu MQTT w usługach IoT Hub i Event Grid) Communicate with an IoT Hub using the MQTT protocol (Komunikacja z centrum IoT przy użyciu protokołu MQTT).
Aby uzyskać informacje o tym, jak te protokoły obsługują określone funkcje usługi IoT Hub, zobacz Wskazówki dotyczące komunikacji urządzenie-chmura i Wskazówki dotyczące komunikacji chmury z urządzeniami.
W poniższej tabeli przedstawiono ogólne zalecenia dotyczące wybranego protokołu:
Protokół | Kiedy należy wybrać ten protokół |
---|---|
MQTT MQTT przez WebSocket |
Użyj na wszystkich urządzeniach, które nie wymagają połączenia z wieloma urządzeniami, z których każde ma własne poświadczenia dla poszczególnych urządzeń, za pośrednictwem tego samego połączenia TLS. |
Protokół AMQP AMQP przez WebSocket |
Używaj bram w terenie i w chmurze, aby skorzystać z możliwości multipleksowania połączeń między urządzeniami. |
HTTPS | Służy do obsługi urządzeń, które nie obsługują innych protokołów. |
Podczas wybierania protokołu do komunikacji po stronie urządzenia należy wziąć pod uwagę następujące kwestie:
Wzorzec komunikacji chmura-do-urządzenia. Protokół HTTPS nie ma wydajnego sposobu implementowania rozsyłania danych przez serwer. Gdy korzystasz z protokołu HTTPS, urządzenia odpytywają IoT Hub pod kątem komunikatów z chmury do urządzenia. Takie podejście jest nieefektywne zarówno dla urządzenia, jak i usługi IoT Hub. Zgodnie z bieżącymi wytycznymi protokołu HTTPS każde urządzenie powinno sondować komunikaty co 25 minut lub więcej. Wystawianie większej liczby żądań HTTPS skutkuje ograniczaniem przez IoT Hub liczby przetwarzanych żądań. MQTT i AMQP obsługują przesyłanie serwera podczas odbierania komunikatów z chmury do urządzenia. Umożliwiają natychmiastowe wypychanie komunikatów z usługi IoT Hub do urządzenia. Jeśli opóźnienie dostarczania jest problemem, MQTT lub AMQP to najlepsze protokoły do użycia. W przypadku rzadko połączonych urządzeń protokół HTTPS również działa.
Bramki dostępowe. Protokół MQTT i HTTPS obsługują tylko jedną tożsamość urządzenia (identyfikator urządzenia i poświadczenia) na połączenie TLS. Z tego powodu te protokoły nie są obsługiwane w scenariuszach bramy polowej, które wymagają multipleksowania wiadomości z wykorzystaniem wielu identyfikatorów urządzeń, poprzez jedno połączenie lub pulę połączeń do usługi IoT Hub. Takie bramy mogą używać protokołu obsługującego wiele tożsamości urządzeń na połączenie, takiego jak AMQP, dla ich ruchu w górę.
Urządzenia z niskimi zasobami. Biblioteki MQTT i HTTPS mają mniejszy rozmiar niż biblioteki AMQP. W związku z tym, jeśli urządzenie zapewnia ograniczone zasoby (na przykład mniej niż 1 MB pamięci RAM), te protokoły mogą być jedyną dostępną implementacją protokołu.
Przechodzenie przez sieć. Standardowy protokół AMQP używa portu 5671, a protokół MQTT nasłuchuje na porcie 8883. Użycie tych portów może powodować problemy w sieciach zamkniętych dla protokołów innych niż HTTPS. Użyj protokołu MQTT przez WebSocket, AMQP przez WebSocket lub HTTPS w tym scenariuszu.
Rozmiar ładunku. MQTT i AMQP to protokoły binarne, które powodują bardziej kompaktowe ładunki niż HTTPS.
Ostrzeżenie
Gdy urządzenia korzystają z protokołu HTTPS, każde urządzenie powinno pobierać komunikaty z chmury do urządzenia nie częściej niż raz na 25 minut. W przypadku programowania każde urządzenie może sondować częściej, jeśli jest to konieczne.
Ważne
Następująca funkcjonalność dla urządzeń korzystających z uwierzytelniania przez urząd certyfikacji X.509 nie jest jeszcze ogólnie dostępna, a tryb podglądu musi być włączony:
- HTTPS, MQTT przez protokoły WebSockets i AMQP za pośrednictwem protokołów WebSocket.
- Przekazywanie plików (wszystkie protokoły).
Te funkcje są ogólnie dostępne na urządzeniach korzystających z uwierzytelniania odcisku palca X.509.
Numery portów
Urządzenia mogą komunikować się z usługą IoT Hub na platformie Azure przy użyciu różnych protokołów. Zazwyczaj określone wymagania rozwiązania określają wybór protokołu. W poniższej tabeli wymieniono porty wychodzące, które muszą być otwarte, aby urządzenie mogło korzystać z określonego protokołu:
Protokół | Port |
---|---|
MQTT | 8883 |
MQTT za pośrednictwem WebSocketów | 443 |
AMQP (Protokół przesyłania danych asynchronicznych) | 5671 |
AMQP przez WebSocket | 443 |
HTTPS | 443 |
Adres IP centrum IoT może ulec zmianie bez powiadomienia. Aby dowiedzieć się, jak ograniczyć skutki zmian adresów IP centrum IoT w rozwiązaniu IoT i urządzeniach, zobacz sekcję Najlepsze rozwiązania dotyczące adresów IP usługi IoT Hub.
Następne kroki
Aby uzyskać więcej informacji na temat implementowania protokołu MQTT w usłudze IoT Hub, zobacz Komunikowanie się z centrum IoT przy użyciu protokołu MQTT.