Azure IoT Python: konfigurer MQTT over WebSockets gennem en proxy
Konfigurer Azure IoT Python-klientens understøttede proxyindstillinger, og vælg MQTT over WebSockets bevidst.
I et program, der allerede bruger Azure IoT Python SDK, vælges MQTT-transporten og dens proxyindstillinger sammen. Denne konfiguration vælger MQTT over 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
)
Klasserne kommer fra SDK'ets dokumenterede interface. Angiv enhedens forbindelsesstreng via programmets hemmelige konfiguration, og erstat eksemplets proxyendpoint. For et offentligt tilgængeligt IoT Hub-endpoint, hvor offentlige mellemled er tilladt, tilbyder HTTP-proxylisten kandidater til HTTP-værten og -porten; bekræft, at tjenesten tillader ruten til destinationen. Det er eksplicitte SDK-indstillinger; en proxy, der virker i en browser, eller en generel indstilling i styresystemet etablerer ikke enhedsklientens rute.
Se ProxyOptions-referencen for den valgte proxytype. Den skelner mellem HTTP-, SOCKS4- og SOCKS5-felter og dokumenterer typeafhængig adfærd for brugernavn/adgangskode, herunder begrænsninger for HTTP. Tilstedeværelsen af et felt lover ikke alle godkendelsesmekanismer.
Proxykontoen og enhedens identitet godkender forskellige trin. En afvist udveksling via mellemled kan stoppe forbindelsen, før brokeren vurderer enhedens legitimationsoplysninger. Valget af WebSockets lader også proxyens begrænsninger for destination og adgang være i kraft.
Notér den valgte transport, destinationen og det første mislykkede trin. SDK-klienten, proxyimplementeringen og den tilladte rute skal stemme overens; hverken en vellykket browseranmodning eller en generel påstand om, at SOCKS bærer enhver protokol, giver den kompatibilitet.