В приложение, което вече използва 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 пренася всеки протокол, осигурява тази съвместимост.

Подобни статии