定义 Azure IoT 中心客户端使用的代理 (Python)
Defining a Proxy used by the Azure IoT Hub Client (Python)
我正在为 Python 使用 Azure IoT 中心客户端 SDK。我正在使用 github 存储库中示例脚本的略微修改版本将文件上传到 IoT 中心。只要我不必为传出连接使用代理,一切都可以正常工作。
我试图了解如何为此配置代理,但我没有找到 Python SDK 的任何内容。我还在其他 SDK 中进行了搜索,并在 C SDK 的 iothub_client_options.h 中找到了一些 ProxySettings。但我不知道如何在 python 客户端中设置这些设置(以防这些设置实际有效)。
我还发现 issue 通过 websockets 的连接需要一些特殊格式的 Linux 环境变量。但是我不使用websockets。
我尝试在 Windows 和 Linux 环境中 运行 我的脚本,其中代理系统设置已正确配置(Win:Internet 设置,Linux:环境变量)。
是否有关于此主题的文档?有人知道如何在 windows 或 linux 上配置代理吗?
根据我的经验,如果 OS 配置正确,我认为您可以 运行 python 使用 Azure IoTHub Client SDK 的脚本,无需任何代理设置即可与 Azure IoT Hub 通信代理。
但是在代理服务器中配置不同的协议(如HTTP
、Socks
等)需要注意一些注意事项,如下。
通常情况下,代理服务器被配置为在 HTTP
协议上工作,该协议只允许 HTTP
通信。因此,如果在 HTTP
模式下使用 IoTHub 客户端,脚本将正常运行,但在 AMQP
/MQTT
模式下无法运行。
如果代理服务器配置为在Socks
协议上工作,例如Socks4
/Socks5
,任何模式下的脚本都可以正常工作,因为Socks
协议只传输数据报,不检查协议类型。
因此请检查您的代理服务器支持哪些协议,然后使用 HTTP
模式或为代理配置 Socks
协议以使脚本正常运行。
我正在为 Python 使用 Azure IoT 中心客户端 SDK。我正在使用 github 存储库中示例脚本的略微修改版本将文件上传到 IoT 中心。只要我不必为传出连接使用代理,一切都可以正常工作。
我试图了解如何为此配置代理,但我没有找到 Python SDK 的任何内容。我还在其他 SDK 中进行了搜索,并在 C SDK 的 iothub_client_options.h 中找到了一些 ProxySettings。但我不知道如何在 python 客户端中设置这些设置(以防这些设置实际有效)。 我还发现 issue 通过 websockets 的连接需要一些特殊格式的 Linux 环境变量。但是我不使用websockets。
我尝试在 Windows 和 Linux 环境中 运行 我的脚本,其中代理系统设置已正确配置(Win:Internet 设置,Linux:环境变量)。
是否有关于此主题的文档?有人知道如何在 windows 或 linux 上配置代理吗?
根据我的经验,如果 OS 配置正确,我认为您可以 运行 python 使用 Azure IoTHub Client SDK 的脚本,无需任何代理设置即可与 Azure IoT Hub 通信代理。
但是在代理服务器中配置不同的协议(如HTTP
、Socks
等)需要注意一些注意事项,如下。
通常情况下,代理服务器被配置为在
HTTP
协议上工作,该协议只允许HTTP
通信。因此,如果在HTTP
模式下使用 IoTHub 客户端,脚本将正常运行,但在AMQP
/MQTT
模式下无法运行。如果代理服务器配置为在
Socks
协议上工作,例如Socks4
/Socks5
,任何模式下的脚本都可以正常工作,因为Socks
协议只传输数据报,不检查协议类型。
因此请检查您的代理服务器支持哪些协议,然后使用 HTTP
模式或为代理配置 Socks
协议以使脚本正常运行。