私はMQTTブローカーMosquittoを自分のPCにインストールしました。私のネットワーク内のボックスで動作させるにはいくつか問題があります。ローカルでは、RPQにMosquitto MQTTブローカを実行しても問題ありません。私はクライアントコマンド(mosquitto_sub, mosquitto_pub
)を購読してトピックに公開することができます。問題はありません。しかし、別のボックスから接続しようとすると、Win2k12サーバーにPythonスクリプトがあり、接続できないことが示されます。mqttブローカーに接続できません
- 私は
- 私のルータのファイアウォールをオフにしようとした私は私のWin2k12サーバ
- でファイアウォールをオフにしようとした私は、アウトバウンド私Win2k12サーバ から許可されたポートにTCP 1883を追加しました
ザ・Pythonスクリプト:
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
client.publish("test_mqtt", "test")
client.subscribe("test")
def on_disconnect(client, userdata, rc):
print("Disconnect, reason: " + str(rc))
print("Disconnect, reason: " + str(client))
client = mqtt.Client("testclient")
client.on_connect = on_connect
client.on_disconnect = on_disconnect
client.connect("192.168.1.20", 1883, 60)
client.loop_forever()
ここで出力が
ですDisconnect, reason: <paho.mqtt.client.Client object at 0x01F41EF0>
Disconnect, reason: 1
私はthe documentationを見ようとしましたが、それはフラグだけを述べていて、それが何であるかは定義していません。
Mosquittoを実行しているラズベリーパイもNode-redを実行しています。 MQTTブローカーへの接続に問題はありません(両方とも同じrpiで稼動しています)
MQTTをRaspberry Piでセットアップして他のデバイスと連携させましたか? NodeMCUで動作させたいのですが、問題が発生したら、Pythonスクリプトを使って問題をさらにデバッグする作業を始めました。
クライアントIDを再利用していますか? ( "testclient")すべてのクライアントが一意のIDを必要とする – hardillb
@hardillb私は、pythonスクリプトで同じ結果を持つランダムなクライアントIDでテストを実行しました。 – Jason94
実行中のモスキートのバージョン。 pahoの新しいバージョンはMQTT 3.11を使用し、古いバージョンのmosquittoは3.13をサポートします。 – hardillb