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.

Artigos relacionados