类: MQTTClient
约 1237 字大约 4 分钟
2026-03-18
构建固件和导入到JS
MQTTClient 类由 mg 模块提供:
import { MQTTClient } from 'mg'简介
MQTT 客户端类,用于连接 MQTT 代理并发布/订阅消息。
通过 mg.connect() 方法并传入 mqtt:// 或 mqtts:// 协议的 URL 来创建 MQTTClient 实例。
示例:
import * as mg from 'mg'
let client = mg.connect('mqtt://broker.hivemq.com:1883', (ev, data) => {
if(ev=='mqtt.open') {
console.log('Connected to MQTT broker')
client.sub('test/topic')
client.push('test/topic', 'Hello MQTT')
}
else if(ev=='msg') {
console.log('Received message:', data.topic, data.data)
}
})事件类型:
open: 连接已打开connect: TCP 连接已建立mqtt.open: MQTT 连接成功(收到 CONNACK)msg: 收到 MQTT 消息,data 包含 topic, data, id, cmd, qos, ack 字段close: 连接已关闭error: 发生错误
类方法
方法 connect
原型: connect (url:string, opts:object=null)
连接到 MQTT 代理
通常通过 mg.connect() 调用,传入 mqtt:// 或 mqtts:// 协议的 URL。
选项对象: { user: string, // 用户名 pass: string, // 密码 client_id: string, // 客户端 ID will_topic: string, // 遗嘱主题 will_message: string, // 遗嘱消息 will_retain: boolean, // 遗嘱是否保留 clean: boolean=true, // 是否清除会话 qos: number=0, // QoS 等级 (0, 1, 2) keepalive: number=0 // 保活时间(秒) }
参数:
url
类型string
参数说明MQTT 代理地址,例如
"mqtt://broker.hivemq.com:1883"opts
类型object
默认值null
参数说明连接选项对象
返回值:
说明返回 MQTTClient 实例
方法 push
原型: push (topic:string, payload:string|ArrayBuffer, qos:number=1, retain:boolean=false)
发布 MQTT 消息
参数:
topic
类型string
参数说明消息主题
payload
类型string, ArrayBuffer
参数说明消息内容
qos
类型number
默认值1
参数说明QoS 等级 (0, 1, 2)
retain
类型boolean
默认值false
参数说明是否保留消息
异常:
- MQTT 客户端未连接
- payload 必须是字符串或 ArrayBuffer
返回值:
类型undefined
方法 sub
原型: sub (topic:string, qos:number=1)
订阅 MQTT 主题
参数:
topic
类型string
参数说明要订阅的主题
qos
类型number
默认值1
参数说明QoS 等级 (0, 1, 2)
异常:
- MQTT 客户端未连接
返回值:
类型undefined
方法 unsub
原型: unsub (topic:string)
取消订阅 MQTT 主题
参数:
topic
类型string
参数说明要取消订阅的主题
返回值:
类型undefined
方法 ping
原型: ping ()
发送 MQTT Ping 请求
异常:
- MQTT 客户端未连接
返回值:
类型undefined
方法 disconnect
原型: disconnect ()
断开 MQTT 连接
异常:
- MQTT 客户端未连接
返回值:
类型undefined
方法 setClientKey
原型: setClientKey (key:string, cert:string)
设置客户端证书和私钥(用于双向 TLS 认证)
参数:
key
类型string
参数说明客户端私钥(PEM 格式)
cert
类型string
参数说明客户端证书(PEM 格式)
返回值:
类型undefined
方法 enableClientAuth
原型: enableClientAuth ()
启用双向 TLS 认证
返回值:
类型undefined
方法 disableClientAuth
原型: disableClientAuth ()
禁用双向 TLS 认证
返回值:
类型undefined
