Azure IoT Python: konfigurera MQTT över WebSockets via en proxy
Konfigurera de proxyalternativ som Azure IoT Python-klienten stöder och välj MQTT över WebSockets medvetet.
I ett program som redan använder Azure IoT Python SDK väljer du MQTT-transporten och dess proxyalternativ tillsammans. Den här konfigurationen väljer MQTT över 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
)
Klasserna kommer från SDK:ns dokumenterade gränssnitt. Ange enhetens anslutningssträng via programmets hemliga konfiguration och ersätt exemplets proxyändpunkt. För en offentligt nåbar IoT Hub-ändpunkt där offentliga mellanhänder tillåts erbjuder HTTP-proxylistan kandidater för HTTP-värden och -porten; bekräfta att tjänsten tillåter vägen till målet. Detta är uttryckliga SDK-alternativ; en proxy som fungerar i webbläsaren eller en allmän inställning i operativsystemet etablerar inte enhetsklientens väg.
Se ProxyOptions-referensen för den valda proxytypen. Den skiljer mellan fälten HTTP, SOCKS4 och SOCKS5 och dokumenterar typberoende beteende för användarnamn/lösenord, inklusive begränsningar för HTTP. Att ett fält finns lovar inte alla autentiseringsmekanismer.
Proxykontot och enhetens identitet auktoriserar olika steg. Ett avvisat utbyte via mellanhand kan stoppa anslutningen innan mäklaren bedömer enhetens autentiseringsuppgifter. Att välja WebSockets låter också proxyns begränsningar för mål och åtkomst gälla.
Anteckna den valda transporten, målet och det första steget som misslyckades. SDK-klienten, proxyimplementeringen och den tillåtna vägen måste stämma överens; varken en lyckad webbläsarförfrågan eller påståendet att SOCKS bär alla protokoll ger den kompatibiliteten.