【发布时间】:2017-05-10 09:31:29
【问题描述】:
我有一个 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()
我尝试使用 while True 语句循环并计算在启动脚本和获取消息之间经过的时间,但它似乎(显然)没有逃脱循环,即使它通过了消息。
有没有一种方法可以告诉我它连接了多长时间,当它超过这个时间时,完全终止脚本?
或者,有没有办法(就像我之前尝试过的那样)进行循环,但也要考虑在循环中传递的消息?
感谢您的建议!
【问题讨论】:
标签: python mqtt terminate paho