Azure IoT Python: set opp MQTT over WebSockets gjennom ein proxy
Set opp dei støtta proxyvala til Azure IoT Python-klienten og vel MQTT over WebSockets med vilje.
I eit program som alt brukar Azure IoT Python SDK, vel ein MQTT-transporten og proxyvala hans saman. Denne konfigurasjonen vel 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
)
Klassane kjem frå det dokumenterte grensesnittet til SDK-en. Oppgi tilkoplingsstrengen til eininga gjennom den hemmelege konfigurasjonen til programmet og byt ut dømeendepunktet for proxyen. For eit offentleg tilgjengeleg IoT Hub-endepunkt der offentlege mellomledd er tillatne, tilbyr HTTP-proxylista kandidatar for HTTP-vert og -port; stadfest at tenesta tillèt ruta til målet. Dette er eksplisitte SDK-val; ein proxy som verkar i nettlesaren, eller ei generell innstilling i operativsystemet, etablerer ikkje ruta til einingklienten.
Sjå ProxyOptions-referansen for den valde proxytypen. Han skil mellom HTTP-, SOCKS4- og SOCKS5-felt og dokumenterer typeavhengig åtferd for brukarnamn/passord, inkludert avgrensingar for HTTP. At eit felt finst, lovar ikkje alle autentiseringsmekanismar.
Proxykontoen og einingidentiteten autoriserer ulike trinn. Ei avvist utveksling via mellomledd kan stoppe tilkoplinga før megleren vurderer legitimasjonen til eininga. Å velje WebSockets lèt òg avgrensingane til proxyen for mål og tilgang gjelde.
Skriv ned den valde transporten, målet og det første trinnet som mislukkast. SDK-klienten, proxyimplementasjonen og den tillatne ruta må stemme overeins; korkje ein vellukka nettlesarførespurnad eller påstanden om at SOCKS ber kvar protokoll gjev den kompatibiliteten.