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 @@