Azure IoT Python: configurar MQTT sobre WebSockets a través dun proxy
Configure as opcións de proxy compatibles do cliente Azure IoT Python e escolla MQTT sobre WebSockets de xeito deliberado.
Nunha aplicación que xa usa o SDK de Azure IoT Python, escolla o transporte MQTT e as súas opcións de proxy xuntos. Esta configuración selecciona MQTT sobre 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
)
As clases proveñen da interface documentada do SDK. Subministre a cadea de conexión do dispositivo mediante a configuración secreta da aplicación e substitúa o punto de conexión de proxy do exemplo. Para un punto de conexión de IoT Hub accesible publicamente onde se permiten intermediarios públicos, a lista de proxies HTTP ofrece candidatos para o host e o porto HTTP; confirme que o servizo permite a ruta de destino. Son opcións explícitas do SDK; un proxy que funcione no navegador ou un axuste xenérico do sistema operativo non establece a ruta do cliente do dispositivo.
Consulte a referencia de ProxyOptions para o tipo de proxy seleccionado. Distingue os campos HTTP, SOCKS4 e SOCKS5 e documenta o comportamento de usuario/contrasinal específico de cada tipo, incluídas as limitacións para HTTP. A presenza dun campo non garante todos os mecanismos de autenticación.
A conta de proxy e a identidade do dispositivo autorizan etapas distintas. Un intercambio intermediario rexeitado pode deter a conexión antes de que o broker avalíe a credencial do dispositivo. Escoller WebSockets tamén deixa vixentes as restricións de destino e acceso do proxy.
Rexistre o transporte escollido, o destino e a primeira etapa fallida. O cliente do SDK, a implementación do proxy e a ruta permitida deben coincidir; nin unha solicitude de navegador correcta nin a afirmación xeral de que SOCKS transporta todos os protocolos fornecen esa compatibilidade.