W aplikacji, która już korzysta z Azure IoT Python SDK, wybieraj transport MQTT i jego opcje proxy razem. Ta konfiguracja wybiera MQTT przez WebSockets:

proxy = ProxyOptions(proxy_type='HTTP',
                     proxy_addr='203.0.113.10', proxy_port=8080)
client = IoTHubDeviceClient.create_from_connection_string(
    connection_string, websockets=True, proxy_options=proxy
)

Klasy pochodzą z udokumentowanego interfejsu SDK. Podaj parametry połączenia urządzenia przez tajną konfigurację aplikacji i zastąp przykładowy punkt końcowy proxy. Dla publicznie osiągalnego punktu końcowego IoT Hub, w którym dozwolone są publiczne pośredniki, lista proxy HTTP oferuje kandydatów na host i port HTTP; potwierdź, że usługa zezwala na trasę do celu. To jawne opcje SDK; działające w przeglądarce proxy lub ogólne ustawienie systemu operacyjnego nie ustala trasy klienta urządzenia.

Sprawdź dokumentację ProxyOptions dla wybranego typu proxy. Rozróżnia pola HTTP, SOCKS4 i SOCKS5 oraz opisuje zachowanie nazwy użytkownika i hasła właściwe dla typu, w tym ograniczenia dla HTTP. Obecność pola nie gwarantuje każdego mechanizmu uwierzytelniania.

Konto proxy i tożsamość urządzenia autoryzują różne etapy. Odrzucona wymiana przez pośrednika może zatrzymać połączenie, zanim broker oceni poświadczenia urządzenia. Wybór WebSockets pozostawia też w mocy ograniczenia proxy dotyczące celu i dostępu.

Zapisz wybrany transport, cel i pierwszy nieudany etap. Klient SDK, implementacja proxy i dozwolona trasa muszą się zgadzać; ani udane żądanie przeglądarki, ani ogólne twierdzenie, że SOCKS przenosi każdy protokół, nie zapewniają tej zgodności.

Powiązane artykuły