From bc694b8a6fc849e8572790148549c85844f5aeb7 Mon Sep 17 00:00:00 2001 From: kerwincui <164770707@qq.com> Date: Thu, 12 May 2022 14:25:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=88=97=E8=A1=A8=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E8=AE=A2=E9=98=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vue/src/views/iot/device/index.vue | 13 ++++++------ vue/src/views/iot/device/mqtt-client.vue | 27 ++++++++++++------------ 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/vue/src/views/iot/device/index.vue b/vue/src/views/iot/device/index.vue index 6c0ac155..972d41a9 100644 --- a/vue/src/views/iot/device/index.vue +++ b/vue/src/views/iot/device/index.vue @@ -392,12 +392,13 @@ export default { mqttSubscribe(list) { // 订阅当前页面设备状态和实时监测 let topics = []; - for (let i = 0; i < list.length; i++) { - let topicStatus = "/" + list[i].productId + "/" + list[i].serialNumber + "/status/post"; - let topicMonitor = "/" + list[i].productId + "/" + list[i].serialNumber + "/monitor/post"; - topics.push(topicStatus); - topics.push(topicMonitor); - } + // 订阅数太多,会导致emqx连接中断或者订阅缓慢 + // for (let i = 0; i < list.length; i++) { + // let topicStatus = "/" + list[i].productId + "/" + list[i].serialNumber + "/status/post"; + // let topicMonitor = "/" + list[i].productId + "/" + list[i].serialNumber + "/monitor/post"; + // topics.push(topicStatus); + // topics.push(topicMonitor); + // } this.subscribes = topics; }, /** 更新实时监测参数*/ diff --git a/vue/src/views/iot/device/mqtt-client.vue b/vue/src/views/iot/device/mqtt-client.vue index 9c00eba9..57b721d6 100644 --- a/vue/src/views/iot/device/mqtt-client.vue +++ b/vue/src/views/iot/device/mqtt-client.vue @@ -23,15 +23,14 @@ export default { watch: { // 获取到父组件传递的值 publish: function (val, oldVal) { - this.mqttPublish(val.topic, val.message,val.name); + this.mqttPublish(val.topic, val.message, val.name); }, subscribes: function (val, oldVal) { this.connectMqtt(val); } }, data() { - return { - }; + return {}; }, created() { @@ -55,16 +54,18 @@ export default { this.client.on("connect", (e) => { console.log("成功连接服务器:", e); // 订阅主题 - this.client.subscribe(subscribeTopics, { - qos: 1 - }, (err) => { - if (!err) { - console.log("订阅成功"); - console.log(subscribeTopics.join(", ")); - } else { - console.log('消息订阅失败!') - } - }); + if (subscribeTopics != '' && subscribeTopics.length > 0) { + this.client.subscribe(subscribeTopics, { + qos: 1 + }, (err) => { + if (!err) { + console.log("订阅成功"); + console.log(subscribeTopics.join(", ")); + } else { + console.log('消息订阅失败!') + } + }); + } }); // 重新连接 this.reconnectMqtt()