From 1d557a24f9370a7f21412ef21a2f0df594eae86b Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期六, 23 十二月 2023 19:45:47 +0800
Subject: [PATCH] update 优化 ws开关改为常开(vite5修复了崩溃bug)

---
 src/utils/websocket.ts |   30 +++++++++++++++++++-----------
 1 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/src/utils/websocket.ts b/src/utils/websocket.ts
index 90e86bf..b0c6911 100644
--- a/src/utils/websocket.ts
+++ b/src/utils/websocket.ts
@@ -19,9 +19,7 @@
  */
 
 import { getToken } from '@/utils/auth';
-import useNoticeStore from '@/store/modules/notice';
-
-const { addNotice } = useNoticeStore();
+import { ElNotification } from 'element-plus';
 
 let socketUrl: any = ''; // socket鍦板潃
 let websocket: any = null; // websocket 瀹炰緥
@@ -29,9 +27,14 @@
 let socketHeart = 0 as number; // 蹇冭烦娆℃暟
 const HeartTimeOut = 10000; // 蹇冭烦瓒呮椂鏃堕棿 10000 = 10s
 let socketError = 0 as number; // 閿欒娆℃暟
+let noticeStore: any = null;
 
 // 鍒濆鍖杝ocket
-export const initWebSocket = (url: any) => {
+export const initWebSocket = (url: any, store: any) => {
+  if (import.meta.env.VITE_APP_WEBSOCKET === 'false') {
+    return;
+  }
+  noticeStore = store;
   socketUrl = url;
   // 鍒濆鍖� websocket
   websocket = new WebSocket(url + '?Authorization=Bearer ' + getToken() + '&clientid=' + import.meta.env.VITE_APP_CLIENT_ID);
@@ -96,7 +99,7 @@
 export const reconnect = () => {
   if (socketError <= 2) {
     clearInterval(heartTime);
-    initWebSocket(socketUrl);
+    initWebSocket(socketUrl, noticeStore);
     socketError = socketError + 1;
     // eslint-disable-next-line prettier/prettier
     console.log('socket閲嶈繛', socketError);
@@ -115,18 +118,23 @@
 // socket 鎺ユ敹鏁版嵁
 export const websocketonmessage = () => {
   websocket.onmessage = function (e: any) {
-    const msg = JSON.parse(e.data) as any;
-    if (msg.type === 'heartbeat') {
+    if (e.data.indexOf('heartbeat') > 0) {
       resetHeart();
     }
-    if (msg.type === 'ping') {
+    if (e.data.indexOf('ping') > 0) {
       return;
     }
-    addNotice({
-      message: msg,
+    noticeStore.addNotice({
+      message: e.data,
       read: false,
       time: new Date().toLocaleString()
     });
-    return msg;
+    ElNotification({
+      title: '娑堟伅',
+      message: e.data,
+      type: 'success',
+      duration: 3000
+    });
+    return e.data;
   };
 };

--
Gitblit v1.9.3