私はIBM BlueMix上で動作するPythonで書かれたフラスコ・サーバーを持っています。私はこのサーバーにMQTTチャネルを聞いて、メッセージを受け取ったときにメッセージを公開したいと思っています。次のコードがありますが、on_connectとon_messageは決して呼び出されません。MQTTサブスクリプションのあるPython Flaskサーバー
app = Flask(__name__)
def on_connect(client):
client.publish(topic2, "CONNECTED")
def on_message(client, userdata, msg):
client.publish(topic2, "MESSAGE")
@app.route('/')
def hello_world():
return 'Hello World! I am running on port ' + str(port)
if __name__ == '__main__':
client = mqtt.Client()
client.username_pw_set(username, password)
client.on_connect = on_connect
client.on_message = on_message
client.connect('broker.example.com')
client.subscribe(topic)
client.publish(topic2, "STARTING SERVER")
app.run(host='0.0.0.0', port=port)
私はclient.loopとclient.loop_foreverを試しましたが、動作しません。
EDIT:client.publish(topic2、 "STARTING SERVER")が動作していると、自分の資格情報が削除されます。あなたは
例えばconnect()
機能で接続したいブローカーの詳細を渡す必要が
私はちょうど私のURLを隠し、これをしました。 client.publish(topic2、 "STARTING SERVER")は正常に動作していますが、on_connectとon_messageは呼び出されません。 – Yourivdzee
答えを – hardillb
loop_start()を試しましたが、on_messageメソッドが呼び出されていません – Yourivdzee