每10秒发布一次消息mqtt

4 投票
2 回答
11030 浏览
提问于 2025-04-18 07:48

我刚接触mqtt这个有趣的协议,还在慢慢了解它。

我想用python创建一个客户端,每10秒发布一次消息。到目前为止,我只成功发布了一条消息,并且让客户端保持连接到服务器。

我该怎么把发布消息的部分做成一个循环呢?

下面是我的客户端代码:

import mosquitto
mqttc=mosquitto.Mosquitto("ioana")
mqttc.connect("127.0.0.1",1884,60,True)
mqttc.publish("test","Hello")
mqttc.subscribe("test/", 2)

while mqttc.loop() == 0:
pass

谢谢。

2 个回答

4

我建议:

import paho.mqtt.client as mqtt # mosquitto.py is deprecated
import time

mqttc = mqtt.Client("ioana")
mqttc.connect("127.0.0.1", 1883, 60)
#mqttc.subscribe("test/", 2) # <- pointless unless you include a subscribe callback
mqttc.loop_start()
while True:
    mqttc.publish("test","Hello")
    time.sleep(10)# sleep for 10 seconds before next call
3

你可以在调用之间暂停一下:

import mosquitto
import time # import time module
mqttc=mosquitto.Mosquitto("ioana")
mqttc.connect("127.0.0.1",8000,60,True)
mqttc.subscribe("test/", 2)
while mqttc.loop() == 0:
    mqttc.publish("test","Hello")
    time.sleep(10)# sleep for 10 seconds before next call

撰写回答