In un'applicazione che usa già l'SDK Azure IoT Python, scegliere insieme il trasporto MQTT e le relative opzioni proxy. Questa configurazione seleziona MQTT su 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
)

Le classi provengono dall'interfaccia documentata dell'SDK. Fornire la stringa di connessione del dispositivo tramite la configurazione segreta dell'applicazione e sostituire l'endpoint proxy di esempio. Per un endpoint di IoT Hub raggiungibile pubblicamente dove sono consentiti intermediari pubblici, l'elenco di proxy HTTP offre candidati per host e porta HTTP; verificare che il servizio consenta la rotta verso la destinazione. Sono opzioni esplicite dell'SDK; un proxy funzionante nel browser o un'impostazione generica del sistema operativo non stabilisce la rotta del client del dispositivo.

Consultare il riferimento ProxyOptions per il tipo di proxy selezionato. Distingue i campi HTTP, SOCKS4 e SOCKS5 e documenta il comportamento di nome utente/password specifico del tipo, comprese le limitazioni per HTTP. La presenza di un campo non garantisce ogni meccanismo di autenticazione.

L'account proxy e l'identità del dispositivo autorizzano fasi diverse. Uno scambio intermediario rifiutato può interrompere la connessione prima che il broker valuti la credenziale del dispositivo. Scegliere WebSockets lascia inoltre in vigore le restrizioni di destinazione e accesso del proxy.

Registrare il trasporto scelto, la destinazione e la prima fase non riuscita. Il client dell'SDK, l'implementazione del proxy e la rotta consentita devono concordare; né una richiesta del browser riuscita né l'affermazione generale che SOCKS trasporta ogni protocollo forniscono questa compatibilità.

Articoli correlati