From 808bc47a2dc594cd594e847fe6f94316bbfa3fe6 Mon Sep 17 00:00:00 2001 From: SHICHAO <17568097882@163.com> Date: Sat, 26 Aug 2023 14:56:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=81=E8=A3=85socket?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 162 ++++++++++++++++++++------- src/utils/index.js | 21 +++- src/views/home/widget/callcenter.vue | 34 +----- src/views/home/widget/fireclues.vue | 49 ++------ src/views/home/widget/reportlist.vue | 43 ++----- 5 files changed, 163 insertions(+), 146 deletions(-) diff --git a/src/App.vue b/src/App.vue index f7914f3..bd200f6 100644 --- a/src/App.vue +++ b/src/App.vue @@ -5,93 +5,175 @@ diff --git a/src/utils/index.js b/src/utils/index.js index 18e24d7..bd69e64 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -125,4 +125,23 @@ export const diffArrFunc = (arr1, arr2) => { } } return diffArr -} \ No newline at end of file +} + +// 判断的是否是JSON字符串 +export const isJson=(str)=>{ + if (typeof str == 'string') { + try { + var obj = JSON.parse(str); + // 等于这个条件说明就是JSON字符串 会返回true + if (typeof obj == 'object' && obj) { + return true; + } else { + //不是就返回false + return false; + } + } catch (e) { + return false; + } + } + return false; +} diff --git a/src/views/home/widget/callcenter.vue b/src/views/home/widget/callcenter.vue index f2ac531..f07b48b 100644 --- a/src/views/home/widget/callcenter.vue +++ b/src/views/home/widget/callcenter.vue @@ -66,7 +66,6 @@ diff --git a/src/views/home/widget/fireclues.vue b/src/views/home/widget/fireclues.vue index 011ee5b..3f7d3bb 100644 --- a/src/views/home/widget/fireclues.vue +++ b/src/views/home/widget/fireclues.vue @@ -45,7 +45,7 @@ export default { this.getList(); }, mounted() { - this.initWebSocket(); + window.addEventListener("onmessageWS", this.getSocketData); }, methods: { getList() { @@ -66,46 +66,15 @@ export default { }); }, - initWebSocket() { + getSocketData(res) { let _this = this; - if ("WebSocket" in window) { - // 打开一个 web socket - var ws = new WebSocket(WS_URL); - var heartCheck; - ws.onopen = function () { - //Web Socket 已连接上,使用 send() 方法发送数据 - console.log("WEBSOCKET-ONLINE"); - heartCheck = setInterval(function () { - ws.send("HeartBeat"); - }, 5000); - }; - ws.onmessage = function (evt) { - clearInterval(heartCheck); - heartCheck = setInterval(function () { - ws.send("HeartBeat"); - }, 5000); - if (evt.data && evt.data !== '发生数据') { - let obj = JSON.parse(evt.data); - - if (obj.Module) { - if (obj.Module == "火情信息") { - _this.getList(); - _this.$emit("getlistSocket"); - } - } - } - }; - ws.onclose = function () { - console.log("WEBSOCKET-CLOSED"); - clearInterval(heartCheck); - _this.initWebSocket(); - }; - } else { - // 浏览器不支持 WebSocket - this.$message({ - type: "warning", - message: "您的浏览器不支持 WebSocket!", - }); + if (!isJson(res.detail.data)) return; + let obj = JSON.parse(evt.data); + if (obj.Module) { + if (obj.Module == "火情信息") { + _this.getList(); + _this.$emit("getlistSocket"); + } } }, }, diff --git a/src/views/home/widget/reportlist.vue b/src/views/home/widget/reportlist.vue index 6fbe12e..07e98a8 100644 --- a/src/views/home/widget/reportlist.vue +++ b/src/views/home/widget/reportlist.vue @@ -79,7 +79,7 @@