Paho MQTT Python: 接続前に proxy_set を呼び出す
MQTT 接続には Paho の proxy_set API を使い、プロキシの資格情報をブローカーの認証とは分けて管理します。
Paho の Python クライアントには、文書化された proxy_set メソッドがあります。MQTT ブローカーに接続する前に、そのクライアントを設定してください。
client.proxy_set(proxy_type=socks.SOCKS5,
proxy_addr='203.0.113.10',
proxy_port=1080)これは、互換性のある Paho クライアントと必要な SOCKS サポートがすでに利用可能であることを前提としています。エンドポイントは例示です。許可されたパブリックプロキシ経路で公開到達可能なブローカーについては、SOCKS5 プロキシ一覧がホストとポートの候補を提供します。そのノードが実際のブローカーの宛先を許可していることを確認してください。このメソッドは対応するプロキシ種別を文書化し、プロキシ処理を PySocks 経由で行います。
ブローカーには依然として独自のホスト名、ポート、TLS 要件、MQTT 認証があります。プロキシのアカウントがブローカーに送信されるユーザー名になるわけではありません。同様に、ブローカーの資格情報を設定してもプロキシのホップは認証されません。
接続設定に失敗した場合は、接続のトランスポートとプロキシが許可する宛先を確認してください。Web ブラウジングを運ぶプロキシが、ブローカーの TCP ポートを自動的に許可するわけではありません。
接続設定後は、Paho API の要件どおりに MQTT のネットワークループを動かし続けてください。プロキシ経路の確立は 1 つの手順であり、それ自体が MQTT の keepalive、コールバック、確認応答を動かすわけではありません。