【发布时间】:2020-07-05 13:57:12
【问题描述】:
我在使用 paho mqtt 库订阅 MQTT 代理(使用带有端口 1883 的 test.mosquitto.org)时遇到问题。当我使用 mosquitto_sub 客户端时,我可以正常接收消息,但是当我在我的 Python 脚本中订阅相同的主题时,回调永远不会被执行。
import paho.mqtt.client as mqtt
client_get = mqtt.Client(client_id='my_client', protocol=mqtt.MQTTv31)
client_get.connect('test.mosquitto.org', 1883)
client_get.loop_start()
def callback(client, userdata, message):
print(str(message.payload.decode("utf-8")))
client_get.on_message = callback
client_get.subscribe(topic, qos=1)
【问题讨论】:
-
这就是你的全部代码吗?因为就目前而言(假设您将
topic替换为代表真实主题的字符串)这将立即退出,因为loop_start()不会启动守护线程,因此如果没有其他内容,它将不会使脚本保持活动状态。 -
我只想订阅我的主题(字符串)并在有人发布到主题时打印消息,所以是的,它需要保持脚本处于活动状态。
标签: python mqtt mosquitto paho