更新记录

1.0.0(2024-10-11)

mqtt收发数据支持iOS和android


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.6.8,Android:4.4,iOS:12,HarmonyOS:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

mqtt收发数据

支持mqtt 3.x 5.x版本请联系作者

开发文档

  1. 集成插件,集成插件步骤请参考 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 = {}
params.host = "xxxx" // ip或域名
params.port = 2607
params.username = "7E1a262F"
params.password = "e42A9611"
params.clientID = "xxxaaabb"

params.enableSSL = true
params.allowUntrustCACertificate = true
if (this.isAndroid) {
    params.cer = {
        ca: plus.io.convertLocalFileSystemURL("_www/static/ca.cer"),
        cer: plus.io.convertLocalFileSystemURL("_www/static/client.cer"),
        key: plus.io.convertLocalFileSystemURL("_www/static/client.key"),
        password: "e42A9611"
    }
} else {
    params.cer = {
        filePath: plus.io.convertLocalFileSystemURL("_www/static/client.p12"),
        password: "123456"
    }
}
// 初始化连接参数
mqtt.initParams(params, (resp) => {

})

// 开始连接
let flag = mqtt.connect()
if (!flag) {
    console.log("连接失败")
}
  • 订阅topic

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)
  • 取消订阅

let topic = "xxx"
mqtt.unsubscribe(topic)
  • 发送数据

mqtt.publish(this.sendTopic, {
    qos: 0,
    retained: false,
    payload: [0, 1] // payload支持字节数组或字符串
})
  • 断开连接

mqtt.disconnect()

隐私、权限声明

1. 本插件需要申请的系统权限列表:

网络权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问