要保持Python paho MQTT连接永久活跃,可以使用循环来实现。以下是一个示例代码:
import time
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc))
client.subscribe("topic")
def on_message(client, userdata, msg):
print(msg.topic + " " + str(msg.payload))
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("broker", 1883, 60)
# 在此处开始循环
client.loop_start()
while True:
# 执行其他任务
time.sleep(1)
# 停止循环
client.loop_stop()
这段代码创建了一个MQTT客户端并连接到指定的broker。然后,通过调用client.loop_start()
启动一个循环,该循环会自动处理网络通信和消息传递。在循环中,可以执行其他任务。要停止循环,使用client.loop_stop()
。
请注意,该循环需要在主线程中运行,因为它是一个阻塞操作。如果需要在后台运行MQTT连接,可以将其放在单独的线程中。