Azure IoT Python: настройка MQTT через WebSockets с помощью прокси
Настройте поддерживаемые параметры прокси клиента Azure IoT Python и осознанно выберите MQTT через WebSockets.
В приложении, которое уже использует 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 передаёт любой протокол, не обеспечивают такой совместимости.