更新记录
1.0.10(2026-06-09)
- 支持鸿蒙
1.0.9(2025-06-04)
- 增加异步订阅接口asyncSubscribe
1.0.8(2025-03-28)
- 修改connect接口适配个别android机型问题
查看更多
平台兼容性
uni-app(3.7.9)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| - |
- |
- |
- |
√ |
√ |
5.0 |
√ |
√ |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| - |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
uni-app x(3.7.9)
| Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
| - |
- |
5.0 |
√ |
√ |
- |
其他
mqtt收发数据
支持mqtt 3.x、5.x版本
开发文档
- 集成插件,集成插件步骤请参考
https://www.cnblogs.com/wenrisheng/p/18323027
import {
UTSMqtt
} from "@/uni_modules/wrs-uts-mqtt"
let mqtt = new UTSMqtt()
mqtt.setCallback((resp) => {
this.showMsg(JSON.stringify(resp))
let opt = resp.opt
switch (opt) {
// 连接成功
case "didConnect":
break;
// 断开连接
case "didDisconnect":
break;
// 收到数据
case "didReceiveMessage":
let message = resp.message
let topic = resp.topic
mqtt.publish(this.sendTopic, {
qos: message.qos,
id: message.id,
retained: message.retained,
payload: message.payload
})
break;
default:
break;
}
})
let params = {}
// 支持两种连接方式:
// 第一种(无证书,enableSSL为false):tcp://192.168.0.1:1883
// 第二种(有证书,enableSSL为true):ssl://192.168.0.1:1883
let enableSSL = true
params.host = "devops.xxxxxx.com"
params.port = 2607
params.username = "7E1a262F"
params.password = "e42A9611"
// enableSSL = false
// params.host = "wg.xxxxxx.cn" // 域名或ip(如:tcp://192.168.0.1:1883, host是192.168.0.1)
// params.port = 1883
// params.username = "admin"
// params.password = "admin"
params.clientID = "xxxaaabb"
// params.keepAlive = 60
params.enableSSL = enableSSL
params.allowUntrustCACertificate = true
params.willMessage = {
topic: '/last-will',
payload: JSON.stringify({
"code": "state",
"messageType": "online",
"messageParam": {
"value": false,
"userId": "sss"
}
}), // 设备掉线消息
qos: 2, // QoS 级别 1:至少一次传输
retained: false // 保留消息
}
params.MQTTVersion = 0 // mqtt版本, 0: 3.1~3.1.1版本 3:3.1版本 4:3.1.1版本 5:5版本
// 添加ssl证书
if (enableSSL) {
switch (uni.getSystemInfoSync().platform) {
// android
case 'android': {
params.cer = {
ca: UTSMqtt.getResourcePath("/static/ca.cer"),
cer: UTSMqtt.getResourcePath("/static/client.cer"),
key: UTSMqtt.getResourcePath("/static/client.key"),
password: "e42A9611"
}
}
break;
case "ios": {
params.cer = {
filePath: UTSMqtt.getResourcePath("/static/client.p12"),
password: "123456"
}
}
break;
case "harmonyos": {
params.cer = {
ca: UTSMqtt.getResourcePath("/static/ca.cer"),
cer: UTSMqtt.getResourcePath("/static/client.cer"),
key: UTSMqtt.getResourcePath("/static/client.key"),
password: "e42A9611"
}
}
break;
default:
break;
}
}
mqtt.connect(params, (resp) => {
let flag = resp.flag
if (!flag) {
this.showMsg("连接失败")
}
})
let topic = this.topic
// qos0 = 0 At least once delivery
// qos1
// /// Exactly once delivery
// case qos2
// /// !!! Used SUBACK frame only
// case FAILURE = 0x80
let qos = 0
mqtt.subscribe(topic, qos)
// 异步订阅topic
mqtt.asyncSubscribe(topic, qos, (resp)=>{})
let topic = "xxx"
mqtt.unsubscribe(topic)
// 同步发送
mqtt.publish(this.sendTopic, {
qos: 0,
retained: false,
payload: [0, 1] // payload支持字节数组或字符串
})
// 异步发送
mqtt.asynPublish(this.sendTopic, {
qos: 0,
retained: false,
payload: [0, 1] // payload支持字节数组或字符串
})
mqtt.disconnect()