更新记录
1.0.0(2025-05-28)
代码重构优化
平台兼容性
uni-app(4.28)
Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
√ |
√ |
- |
- |
- |
- |
4.4 |
× |
- |
微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
快应用-华为 |
快应用-联盟 |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
uni-app x(4.45)
Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
- |
- |
5.0 |
× |
- |
- |
使用说明
下载试用本插件后,请重新打包自定义基座
如果使用该插件,请删除自己引入的 mqttv3 相关 jar 包,避免打包自定义基座 class 冲突
该插件可用于连接 mqtt 服务端,也可以用于连接 rabbitMQ 服务端
如果想连接 rabbitMQ
请在rabbitMQ官网下开启 mqtt 插件并且添加对应配置即可
如果特殊要求需要购买源码请联系作者,较贵,望理解
有关于该插件的疑问或者技术探讨可以联系作者(备注来源)
微信号:z1003975792y
API 介绍
1、连接函数 connect
参数 |
类型 |
必填 |
备注 |
option |
object |
是 |
连接参数 |
import {
connect
} from "@/uni_modules/zhangyue-mqtt";
let option = {
host: 'tcp://10.10.xx.xx:1883', // 必填,主机ip
clientId: 'xxxxx', // 必填,客户端id,不同客户端请保证clientId不同
userName: 'xxxx', // 必填,用户名
password: 'xxxx', // 必填,密码
success: (code, msg)=>{ // 必填,连接成功回调函数
console.log(code, msg)
},
fail: (code, msg)=>{ // 必填,连接失败回调函数
console.log(code, msg)
}
cleanSession: false, // 可选,默认false,是否开启持续会话
automaticReconnect: true, // 可选,默认true,是否自动重连
heartBeat: 60, // 可选,默认60秒, 心跳
timeOut: 30, // 可选,默认30秒,连接超时时间
offPeriodMsg: (topic, res) => {
console.log(topic, res) // topic 主题 res 收到的消息内容
}, // 可选,用于固定场景,前提是cleanSession为false,场景是打开APP并连接以及订阅某个主题后,突然杀死APP,然后重新打开APP并连接,该回调用于接收在APP在杀死期间收到的消息
keepAlive: false, // 可选,是否保活(息屏保活), 对于Android O及以上版本,如果你的应用处于后台,你需要将服务转变为前台服务来避免系统在一定时间后杀死服务。这需要通过创建一个持续在通知栏显示的通知来实现。
notificationContentText, // 可选,通知内容,默认(应用正在后台运行,这有助于提供定制的服务和改善用户体验。)
notificationContentTitle, // 可选,通知标题,默认(后台应用持续运行)
}
// 连接mqtt
connect(option
)
2、订阅主题函数 subscribe
参数 |
类型 |
必填 |
备注 |
option |
object |
是 |
订阅参数 |
import { subscribe } from '@/uni_modules/zhangyue-mqtt'
// 下面是其它客户端或者后端发布消息以json的格式
// 例如 {message:'你好,mqtt'}
// 如果不是按照json格式发布消息,res将会是以下数据结构
// res = {
// data: xxx // 服务端怎么发送,前端怎么接,二进制的也可以
// }
subscribe({
topic: 'test',
qos: 2, // QoS(Quality of Service)是 MQTT 协议中用于确保消息传递质量的机制 0:最多一次传输、1 至少一次传输、2 仅一次传输
callback: (res) => { // 必填,该主题接收到消息的回调函数
uni.showToast({
title: res.message, // 接收到的消息
icon: 'none'
})
},
success: (code, msg) => { // 必填,订阅成功的回调
// code 成功码, msg 成功消息
console.log(code, msg)
},
fail: (code, msg) => { // 必填,订阅失败的回调
// code错误码,msg 错误信息
console.log(code, msg)
}
})
3、取消订阅函数 unsubscribe
参数 |
类型 |
必填 |
备注 |
option |
object |
是 |
取消订阅参数 |
import { unsubscribe } from '@/uni_modules/zhangyue-mqtt'
unsubscribe({
topic: 'test',
success: (code, msg) => { // 必填,取消订阅成功的回调
// code 成功码, msg 成功消息
console.log(code, msg)
},
fail: (code, msg) => { // 必填,取消订阅失败的回调
// code错误码,msg 错误信息
console.log(code, msg)
}
})
4、发布消息函数 publish
参数 |
类型 |
必填 |
备注 |
option |
object |
是 |
发布消息参数 |
import { publish } from '@/uni_modules/zhangyue-mqtt'
var temp = JSON.stringify({
message: '你好,mqtt',
phone: '131xxxxxxxx',
})
// 也可以发送不是json的数据,只要序列化后再发送即可
publish({
topic:' test', // 必填,主题
qos: 2, // 必填,QoS(Quality of Service)是 MQTT 协议中用于确保消息传递质量的机制 0:最多一次传输、1 至少一次传输、2 仅一次传输
message: temp, // 必填,发送的消息体
isAsyn: true, // 可选,是否采用异步线程的方式发送消息,默认是false
success: (code, msg) => { // 必填,发送消息成功的回调
// code 成功码, msg 成功消息
console.log(code, msg)
},
fail: (code, msg) => { // 必填,发送消息失败的回调
// code错误码,msg 错误信息
console.log(code, msg)
}
})
5、监听连接丢失函数 onLostConnect
参数 |
类型 |
必填 |
备注 |
option |
object |
是 |
连接丢失参数 |
import { onLostConnect } from '@/uni_modules/zhangyue-mqtt'
onLostConnect({
callback: (res) => { // 必填,连接丢失时的回调
// code 200, msg 连接丢失的原因,控制台也可以看到
console.log(code, msg)
},
success: (code, msg) => { // 必填,开启监听连接丢失成功的回调
// code 成功码, msg 成功消息
console.log(code, msg)
},
fail: (code, msg) => { // 必填,开启监听连接丢失失败失败的回调
// code错误码,msg 错误信息
console.log(code, msg)
}
})
6、监听自动重新连接函数 onRecovery
automaticReconnect:true 的前提下生效
重新连接后,插件自己会将原来已经订阅的主题主动订阅,无需自己重新订阅
参数 |
类型 |
必填 |
备注 |
option |
object |
是 |
连接恢复参数 |
import { onRecovery } from '@/uni_modules/zhangyue-mqtt'
onRecovery({
callback: (res) => { // 必填,连接恢复时的回调
// code 200, msg 连接恢复msg
console.log(code, msg)
},
success: (code, msg) => { // 必填,开启监听连接恢复成功的回调
// code 成功码, msg 成功消息
console.log(code, msg)
},
fail: (code, msg) => { // 必填,开启监听连接恢复失败的回调
// code错误码,msg 错误信息
console.log(code, msg)
}
})
7、断开连接函数 closeConnect
参数 |
类型 |
必填 |
备注 |
(code, msg)=>{} |
function |
是 |
断开连接的回调函数 (res.code 200 是断开成功,500 是断开失败) |
closeClient |
boolean |
是 |
断开连接是否关闭客户端,如果断开连接后下次重连需要变更 clientId,设置为 true,反之设置为 false |
import { closeConnect } from '@/uni_modules/zhangyue-mqtt'
closeConnect((code, msg) => {
console.log(code, msg)
}, true)
8、获取连接状态函数 isConnected
import { isConnected } from '@/uni_modules/zhangyue-mqtt'
console.log(isConnected()) // 返回连接的状态,true表示已连接,false表示未连接