私はMQTTサーバーに接続しているPythonスクリプトを持っています。私が購読しているトピックを通してメッセージを受け取ることを期待していますが、メッセージを受け取らないと、スクリプトを完全に終了したいのです。Python MQTT限られた時間だけ接続します
次のように私はルックスで働いているスクリプト:
#!/usr/bin/python
import sys
import json
import paho.mqtt.client as mqtt
def on_message(client, userdata, msg):
if msg.topic == "discovery":
data = json.loads(msg.payload)
serial = data['serial']
print "test successful!"
sys.exit(0)
def on_connect(client, userdata, flags, rc):
client.subscribe([("discovery", 2)])
client = mqtt.Client()
try:
client.connect('localhost', 4444)
except:
print "ERROR: Could not connect to MQTT
client.on_connect = on_connect
client.on_message = on_message
client.loop_forever()
私はループにしばらく真のステートメントを使用してみましたし、スクリプトを起動し、それがメッセージを取得間での通過時間を把握しているが、それメッセージを受け取っている間でも(明らかに)ループをエスケープしていないようです。
どのくらい時間がかかるのか、その時間を超えたときにスクリプトを完全に終了する方法がありますか?
または、ループを作成するための方法はありますか(前にも試したように)でしょうか?
お寄せいただきありがとうございます!
完璧に動作します、ありがとうございます! – user5740843