import paho.mqtt.client as mqtt
import json
class MQTTPublisher:
“”“MQTT发布消息的类”“”
def \_\_init\_\_(self, host, port=1883, client_id="", username=None, password=None):
"""
构造函数,用于初始化 MQTT 客户端的连接信息
:param host: str,MQTT 服务器地址
:param port: int,MQTT 服务器端口,默认为1883
:param client_id: str,MQTT 客户端 ID,默认为空
:param username: str,MQTT 服务器用户名(可选)
:param password: str,MQTT 服务器密码(可选)
“”"
self.host = host
self.port = port
self.client = mqtt.Client(client_id=client_id)
# 如果提供了用户名和密码,就设置 MQTT 客户端的认证信息
if username and password:
self.client.username_pw_set(username, password)
def on\_connect(self, client, userdata, flags, rc):
"""
连接成功回调函数,会在 MQTT 客户端连接成功时被调用
:param client: MQTT 客户端实例
:param userdata: 用户数据
:param flags: 标志位
:param rc: 返回码
-
返回码说明:
* 0:连接成功
* 1:协议版本不正确
* 2:客户端标识符无效
* 3:服务器不可用
* 4:用户名或密码不正确
* 5:未经授权
“”"
rc_status = [
“连接成功”, “协议版本不正确”, “客户端标识符无效”, “服务器不可用”, “用户名或密码不正确”, “未经授权”]
print(“connect:”, rc_status[rc], rc)def connect(self):
“”"
连接 MQTT 服务器
“”"
# 设置连接成功回调函数
self.client.on_connect = self.on_connect# 连接MQTT服务器,keepalive为60秒 self.client.connect(self.host, sel