У програмі, яка вже використовує Azure IoT Python SDK, вибирайте транспорт MQTT та його параметри проксі разом. Ця конфігурація вибирає MQTT через 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
)

Класи походять із документованого інтерфейсу SDK. Передайте рядок підключення пристрою через секретну конфігурацію програми та замініть приклад кінцевої точки проксі. Для публічно доступної кінцевої точки IoT Hub, де дозволені публічні посередники, список HTTP-проксі пропонує кандидатів для хоста й порту HTTP; підтвердьте, що служба дозволяє маршрут до призначення. Це явні параметри SDK; проксі, що працює в браузері, або загальне налаштування операційної системи не встановлює маршрут клієнта пристрою.

Зверніться до довідки ProxyOptions для вибраного типу проксі. Вона розрізняє поля HTTP, SOCKS4 і SOCKS5 та описує поведінку імені користувача й пароля, властиву типу, зокрема обмеження для HTTP. Наявність поля не гарантує всі механізми автентифікації.

Обліковий запис проксі та ідентичність пристрою авторизують різні етапи. Відхилений обмін через посередника може зупинити з'єднання до того, як брокер оцінить облікові дані пристрою. Вибір WebSockets також залишає чинними обмеження проксі щодо призначення й доступу.

Запишіть вибраний транспорт, призначення та перший невдалий етап. Клієнт SDK, реалізація проксі та дозволений маршрут мають збігатися; ані успішний запит браузера, ані загальне твердження, що SOCKS передає будь-який протокол, не забезпечують такої сумісності.

Схожі статті