要するに、うまく機能するPaho/MQTTサンプルセットがありますが、エラーの検出に問題があります。具体的には、私はon_connectコールバックを取得していないし、無効なUserID/Pswdの組み合わせが与えられたとき、それは黙って失敗する。 実際、すべての兆候によって、すべて正常に機能しました!Python Paho/MQTT:接続エラーの検出
私は間違っていますか?ユーザーIDまたはPSWDが意図的に間違っている
(snip)
def on_connect(client, userdata, flags, rc):
print("Connected with flags [%s] rtn code [%d]"% (flags, rc))
def on_disconnect(client, userdata, rc):
print("disconnected with rtn code [%d]"% (rc))
def on_publish(client, userdata, msgID):
print("Published with MsgID [%d]"% (msgID))
mqttc = mqtt.Client()
mqttc.on_connect = on_connect
mqttc.on_disconnect = on_disconnect
mqttc.on_publish = on_publish
mqttc.username_pw_set(Q_USER, Q_PSWD)
rc=mqttc.connect(Q_BROKER, Q_PORT)
print "Return="+str(rc)
mqttc.loop_start()
rc=mqttc.publish(Q_TOPIC, "Hello, World!")
print "Return="+str(rc)
mqttc.disconnect()
mqttc.loop_stop()
出力:
Return=0
Published with MsgID [1]
Return=(0, 1)
disconnected with rtn code [0]
混乱に追加するには... connect()呼び出しの前にloop_start()を動かすと、メッセージは正しくポストされません。まだエラーが表示されていない – Jeppedy
どのブローカーを使用していますか、どのように認証を設定しましたか?例えばもしmosquittoが 'allow_anonymous'なら本当ですか? – hardillb
connect()呼び出しの前のloop_start()は未定義の結果を生成することがわかっています。 – Jeppedy