【发布时间】:2021-10-15 09:11:47
【问题描述】:
我是使用 MQTT 的新手,我想同时运行两个 Python 程序:一个将消息发布到主题,另一个在消息发布到主题时打印出消息。但是,打印消息的回调函数对我不起作用。
这是我拥有的两个程序:
发布消息:
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected! Result code: " + str(rc))
client = mqtt.Client(client_id="clientID")
client.on_connect = on_connect
client.username_pw_set(username="username", password="password")
client.loop_start()
client.connect("node02.myqtthub.com", 1883)
while True:
client.publish("my/topic", "test")
订阅并打印消息:
import paho.mqtt.client as mqtt
def on_message(client, userdata, msg):
print(msg.payload.decode())
def on_connect(client, userdata, flags, rc):
print("Connected! Result code: " + str(rc))
client.subscribe("my/topic")
client = mqtt.Client(client_id="clientID")
client.on_connect = on_connect
client.on_message = on_message
client.username_pw_set(username="username", password="password")
client.connect("node02.myqtthub.com", 1883)
client.loop_forever()
有人可以帮我解决这个问题吗?
【问题讨论】:
-
您能
telnet node02.myqtthub.com 1883看看您是否真的可以访问该服务?这是排除任何基本连接问题的良好第一步。 -
我使用了他们的在线查看器,我可以看到那里显示的消息。另外,如果我使用node02.myqtthub.com 向同一主题发布消息,则第二个 Python 程序(“订阅并打印消息”)会成功显示该消息。