Paho MQTT Python:连接前调用 proxy_set
用 Paho 的 proxy_set API 建立 MQTT 连接,并把代理凭据与 broker 认证分开。
Paho 的 Python 客户端有一个有文档的 proxy_set 方法。在连接 MQTT broker 之前先配置该客户端:
client.proxy_set(proxy_type=socks.SOCKS5,
proxy_addr='203.0.113.10',
proxy_port=1080)这假定已有兼容的 Paho 客户端及其所需的 SOCKS 支持。该端点仅作示例。对于在允许的公共代理路由上可公开访问的 broker,SOCKS5 代理列表提供主机和端口候选;请确认该节点允许实际的 broker 目标地址。该方法记录了支持的代理类型,并通过 PySocks 转发代理流量。
broker 仍然有自己的主机名、端口、TLS 要求和 MQTT 认证。代理账户不会变成发送给 broker 的用户名。同样,设置 broker 凭据也不会认证代理这一跳。
当连接建立失败时,检查连接的传输方式以及代理允许的目标地址。承载网页浏览的代理不会自动允许 broker 的 TCP 端口。
连接建立后,按 Paho API 的要求保持 MQTT 网络循环运行。建立代理路由只是一步;它本身并不驱动 MQTT 的 keepalive、回调和确认。