欢迎访问宙启技术站
智能推送

使用paho.mqtt.client库建立Python程序与MQTTv311代理的连接

发布时间:2023-12-24 12:13:27

paho.mqtt.client是一个Python开发的MQTT客户端库,用于与MQTT v3.1.1代理建立连接,并进行MQTT通信。下面是一个使用paho.mqtt.client库建立Python程序与MQTTv311代理的连接的例子:

import time
import paho.mqtt.client as mqtt

# 连接成功回调函数
def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("Connected to MQTT broker")
    else:
        print("Failed to connect, return code: ", rc)

# 发布消息回调函数
def on_publish(client, userdata, mid):
    print("Message published")

# 订阅消息回调函数
def on_message(client, userdata, msg):
    print("Received message: ", msg.payload.decode())

# 建立mqtt客户端
client = mqtt.Client()

# 设置连接回调函数
client.on_connect = on_connect

# 设置发布回调函数
client.on_publish = on_publish

# 设置订阅回调函数
client.on_message = on_message

# 设置用户名和密码(若服务器需要验证)
client.username_pw_set("username", "password")

# 连接MQTT代理
client.connect("mqtt.example.com", 1883)

# 启动循环,保持与MQTT代理的连接
client.loop_start()

# 发布消息
client.publish("topic/test", "Hello, MQTT!")

# 订阅消息
client.subscribe("topic/test")

# 等待5秒,接收订阅消息
time.sleep(5)

# 停止循环,断开与MQTT代理的连接
client.loop_stop()
client.disconnect()

在上面的例子中,我们首先定义了连接成功回调函数(on_connect),发布消息回调函数(on_publish),订阅消息回调函数(on_message)。然后创建了一个mqtt客户端实例。接下来,我们设置连接回调函数、发布回调函数和订阅回调函数。然后设置了用户名和密码(如果有)并连接到MQTT代理。之后,启动循环(client.loop_start())以保持与MQTT代理的连接。然后,我们发布一条消息(client.publish())和订阅一条消息(client.subscribe())。接着,我们等待5秒钟,以便接收订阅的消息。最后,我们停止循环(client.loop_stop())并断开与MQTT代理的连接(client.disconnect())。

这是一个简单的例子,展示了如何使用paho.mqtt.client库与MQTTv311代理建立连接并进行通信。根据具体需求,你可以根据需要扩展和修改这个例子。