Azure IoT Python: configurar MQTT sobre WebSockets a través de un proxy
Configure las opciones de proxy compatibles con el cliente de Azure IoT Python y elija MQTT sobre WebSockets de forma deliberada.
En una aplicación que ya usa el SDK de Azure IoT Python, elija el transporte MQTT y sus opciones de proxy en conjunto. 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
)
Las clases proceden de la interfaz documentada del SDK. Proporcione la cadena de conexión del dispositivo mediante la configuración secreta de la aplicación y sustituya el punto de conexión de proxy del ejemplo. Para un punto de conexión de IoT Hub accesible públicamente donde se permiten intermediarios públicos, la lista de proxies HTTP ofrece candidatos para el host y el puerto HTTP; confirme que el servicio permite la ruta de destino. Son opciones explícitas del SDK; un proxy que funcione en el navegador o un ajuste genérico del sistema operativo no establece la ruta del cliente del dispositivo.
Consulte la referencia de ProxyOptions para el tipo de proxy seleccionado. Distingue los campos HTTP, SOCKS4 y SOCKS5 y documenta el comportamiento de usuario y contraseña específico de cada tipo, incluidas las limitaciones para HTTP. La presencia de un campo no garantiza todos los mecanismos de autenticación.
La cuenta de proxy y la identidad del dispositivo autorizan etapas distintas. Un intercambio intermediario rechazado puede detener la conexión antes de que el broker evalúe la credencial del dispositivo. Elegir WebSockets también deja vigentes las restricciones de destino y acceso del proxy.
Registre el transporte elegido, el destino y la primera etapa fallida. El cliente del SDK, la implementación del proxy y la ruta permitida deben coincidir; ni una solicitud de navegador correcta ni la afirmación general de que SOCKS transporta todos los protocolos aportan esa compatibilidad.