V aplikácii, ktorá už používa Azure IoT Python SDK, volíme prenos MQTT a jeho možnosti proxy spoločne. Táto konfigurácia volí MQTT cez 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
)

Triedy pochádzajú z dokumentovaného rozhrania SDK. Odovzdajte pripojovací reťazec zariadenia cez tajnú konfiguráciu aplikácie a nahraďte ukážkový koncový bod proxy. Pre verejne dostupný koncový bod IoT Hub, kde sú povolení verejní sprostredkovatelia, zoznam HTTP proxy ponúka kandidátov pre hostiteľa a port HTTP; overte, že služba povoľuje trasu k cieľu. Sú to explicitné možnosti SDK; proxy fungujúca v prehliadači alebo všeobecné nastavenie operačného systému trasu klienta zariadenia nevytvára.

Pre zvolený typ proxy si pozrite referenciu ProxyOptions. Rozlišuje polia HTTP, SOCKS4 a SOCKS5 a dokumentuje správanie používateľského mena a hesla špecifické pre typ, vrátane obmedzení pre HTTP. Prítomnosť poľa nesľubuje každý mechanizmus overovania.

Účet proxy a identita zariadenia autorizujú rôzne fázy. Odmietnutá výmena cez sprostredkovateľa môže zastaviť spojenie skôr, než broker vyhodnotí poverenie zariadenia. Voľba WebSockets tiež ponecháva v platnosti obmedzenia proxy týkajúce sa cieľa a prístupu.

Zaznamenajte zvolený prenos, cieľ a prvú neúspešnú fázu. Klient SDK, implementácia proxy a povolená trasa sa musia zhodovať; ani úspešná požiadavka prehliadača, ani všeobecné tvrdenie, že SOCKS prenáša každý protokol, túto kompatibilitu nezabezpečujú.

Súvisiace články