Numa aplicação que já usa o Azure IoT Python SDK, escolha o transporte MQTT e as suas opções de proxy em conjunto. Esta configuração seleciona 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 classes provêm da interface documentada do SDK. Forneça a cadeia de ligação do dispositivo através da configuração secreta da aplicação e substitua o ponto final de proxy do exemplo. Para um ponto final do IoT Hub acessível publicamente onde são permitidos intermediários públicos, a lista de proxies HTTP oferece candidatos para o anfitrião e a porta HTTP; confirme que o serviço permite a rota até ao destino. São opções explícitas do SDK; um proxy a funcionar no navegador ou uma definição genérica do sistema operativo não estabelece a rota do cliente do dispositivo.

Consulte a referência ProxyOptions para o tipo de proxy selecionado. Distingue os campos HTTP, SOCKS4 e SOCKS5 e documenta o comportamento de nome de utilizador/palavra-passe específico do tipo, incluindo limitações para HTTP. A presença de um campo não garante todos os mecanismos de autenticação.

A conta de proxy e a identidade do dispositivo autorizam fases diferentes. Uma troca intermediária rejeitada pode parar a ligação antes de o broker avaliar a credencial do dispositivo. Escolher WebSockets também mantém em vigor as restrições de destino e acesso do proxy.

Registe o transporte escolhido, o destino e a primeira fase falhada. O cliente do SDK, a implementação do proxy e a rota permitida têm de concordar; nem um pedido de navegador bem-sucedido nem a afirmação geral de que o SOCKS transporta todos os protocolos fornecem essa compatibilidade.

Artigos relacionados