import mqtt from'../../utils/mqtt.js'; const aliyunOpt = require('../../utils/aliyun/aliyun_connect.js'); 可以分享下这两个文件吗
微信小程序用mqtt.js连阿里物联网设备,为什么老是断开,小程序切到后台后马上就跟物联网设备断开?微信小程序使用mqtt.js连阿里物联网设备,为什么连接上物联网设备后不定时的断开连接,另外小程序切换到后台后就会马上跟物联网设备断开连接,主要代码如下(劳烦各位大佬解惑): import mqtt from'../../utils/mqtt.js'; const aliyunOpt = require('../../utils/aliyun/aliyun_connect.js'); let that = null; Page({ data:{ client:null,//记录重连的次数 reconnectCounts:0,//MQTT连接的配置 options:{ protocolVersion: 4, //MQTT连接协议版本 clean: false, reconnectPeriod: 1000, //1000毫秒,两次重新连接之间的间隔 connectTimeout: 30 * 1000, //1000毫秒,两次重新连接之间的间隔 resubscribe: true, //如果连接断开并重新连接,则会再次自动订阅已订阅的主题(默认true) clientId: '', password: '', username: '', }, aliyunInfo: { productKey: '**********', //阿里云连接的三元组 ,请自己替代为自己的产品信息!! deviceName: '**********', //阿里云连接的三元组 ,请自己替代为自己的产品信息!! deviceSecret: '****************', //阿里云连接的三元组 ,请自己替代为自己的产品信息!! regionId: 'cn-shanghai', //阿里云连接的三元组 ,请自己替代为自己的产品信息!! pubTopic: '/*********/**********/thing/event/property/post', //发布消息的主题 subTopic: '/*********/**********/thing/service/property/set', //订阅消息的主题 }, }, onLoad:function(){ that = this; let clientOpt = aliyunOpt.getAliyunIotMqttClient({ productKey: that.data.aliyunInfo.productKey, deviceName: that.data.aliyunInfo.deviceName, deviceSecret: that.data.aliyunInfo.deviceSecret, regionId: that.data.aliyunInfo.regionId, port: that.data.aliyunInfo.port, }); console.log("get data:" + JSON.stringify(clientOpt)); let host = 'wxs://' + clientOpt.host; console.log("get data:" + JSON.stringify(clientOpt)); this.setData({ 'options.clientId': clientOpt.clientId, 'options.password': clientOpt.password, 'options.username': clientOpt.username, }) console.log("this.data.options host:" + host); console.log("this.data.options data:" + JSON.stringify(this.data.options)); this.data.client = mqtt.connect(host, this.data.options); this.data.client.on('connect', function (connack) { wx.showToast({ title: '连接成功' }) }) that.data.client.on("message", function (topic, payload) { console.log(" 收到 topic:" + topic + " , payload :" + payload) wx.showModal({ content: " 收到topic:[" + topic + "], payload :[" + payload + "]", showCancel: false, }); }) //服务器连接异常的回调 that.data.client.on("error", function (error) { console.log(" 服务器 error 的回调" + error) }) //服务器重连连接异常的回调 that.data.client.on("reconnect", function () { console.log(" 服务器 reconnect的回调") }) //服务器连接异常的回调 that.data.client.on("offline", function (errr) { console.log(" 服务器offline的回调") }) },
2022-10-26