以下是 Python MQTT 程序,包含重连处理:

import paho.mqtt.client as mqtt
import time

# Define MQTT broker address and port
broker_address = 'localhost'
broker_port = 1883

# Define MQTT client
client = mqtt.Client()

# Define callback functions
def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print('Connected to broker')
    else:
        print('Connection failed')

def on_disconnect(client, userdata, rc):
    print('Disconnected from broker')
    time.sleep(5)
    client.reconnect()

def on_message(client, userdata, message):
    print('Received message: ' + str(message.payload.decode('utf-8')))

# Set callback functions
client.on_connect = on_connect
client.on_disconnect = on_disconnect
client.on_message = on_message

# Connect to MQTT broker
client.connect(broker_address, broker_port)

# Subscribe to topic
client.subscribe('test/topic')

# Publish message
client.publish('test/topic', 'Hello, MQTT')

# Start loop
client.loop_forever()

在上面的程序中,我们使用了 paho-mqtt 库来实现 MQTT 功能。我们首先定义了 MQTT 代理地址和端口,并创建了一个 MQTT 客户端对象。然后,我们定义了三个回调函数:on_connect,on_disconnect 和 on_message。on_connect 函数在连接到 MQTT 代理时被调用,on_disconnect 函数在与 MQTT 代理断开连接时被调用,on_message 函数在接收到 MQTT 消息时被调用。

我们将这些回调函数与 MQTT 客户端对象相关联,以便在需要时调用它们。然后,我们连接到 MQTT 代理并订阅主题。我们还发布了一条 MQTT 消息以测试它是否工作正常。

最后,我们开始了一个循环,以便在接收到 MQTT 消息时处理它们。如果我们与 MQTT 代理断开连接,我们在 on_disconnect 回调函数中添加了一个 5 秒的延迟,然后尝试重新连接。这样可以确保我们的程序能够在 MQTT 代理重新启动后重新连接。

Python MQTT 程序:实现重连功能

原文地址: https://www.cveoy.top/t/topic/jEWo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录