Azure IoT Python: configureu MQTT sobre WebSockets a través d'un proxy
Configureu les opcions de proxy compatibles del client Azure IoT Python i trieu MQTT sobre WebSockets de manera deliberada.
En una aplicació que ja utilitza l'SDK Azure IoT Python, trieu el transport MQTT i les seves opcions de proxy alhora. Aquesta configuració 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
)
Les classes provenen de la interfície documentada de l'SDK. Proporcioneu la cadena de connexió del dispositiu mitjançant la configuració secreta de l'aplicació i substituïu el punt final de proxy d'exemple. Per a un punt final d'IoT Hub accessible públicament on es permeten intermediaris públics, la llista de proxys HTTP ofereix candidats per a l'amfitrió i el port HTTP; confirmeu que el servei permet la ruta de destinació. Són opcions explícites de l'SDK; un proxy que funcioni al navegador o un paràmetre genèric del sistema operatiu no estableix la ruta del client del dispositiu.
Consulteu la referència ProxyOptions per al tipus de proxy seleccionat. Distingeix els camps HTTP, SOCKS4 i SOCKS5 i documenta el comportament d'usuari/contrasenya específic de cada tipus, incloses les limitacions per a HTTP. La presència d'un camp no garanteix tots els mecanismes d'autenticació.
El compte de proxy i la identitat del dispositiu autoritzen etapes diferents. Un intercanvi intermediari rebutjat pot aturar la connexió abans que el broker avaluï la credencial del dispositiu. Triar WebSockets també deixa vigents les restriccions de destinació i accés del proxy.
Registreu el transport triat, la destinació i la primera etapa fallida. El client de l'SDK, la implementació del proxy i la ruta permesa han de coincidir; ni una sol·licitud de navegador correcta ni una afirmació general que SOCKS transporta tots els protocols proporcionen aquesta compatibilitat.