From 772885de35e57e6a2c805ef9274ab0ec874f6d3c Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期六, 23 十二月 2023 19:49:17 +0800
Subject: [PATCH] update 优化 websocket 代码实现

---
 src/layout/index.vue   |   12 +++++-------
 src/utils/websocket.ts |    9 ++++-----
 2 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/src/layout/index.vue b/src/layout/index.vue
index 0c1fb17..8fe5554 100644
--- a/src/layout/index.vue
+++ b/src/layout/index.vue
@@ -26,14 +26,7 @@
 import { AppMain, Navbar, Settings, TagsView } from './components';
 import useAppStore from '@/store/modules/app';
 import useSettingsStore from '@/store/modules/settings';
-
 import { initWebSocket } from '@/utils/websocket';
-import useNoticeStore from '@/store/modules/notice';
-
-onMounted(() => {
-  let protocol = window.location.protocol === 'https:' ? 'wss://' : 'ws://';
-  initWebSocket(protocol + window.location.host + import.meta.env.VITE_APP_BASE_API + '/resource/websocket', useNoticeStore());
-});
 
 const settingsStore = useSettingsStore();
 const theme = computed(() => settingsStore.theme);
@@ -73,6 +66,11 @@
   });
 });
 
+onMounted(() => {
+  let protocol = window.location.protocol === 'https:' ? 'wss://' : 'ws://';
+  initWebSocket(protocol + window.location.host + import.meta.env.VITE_APP_BASE_API + '/resource/websocket');
+});
+
 const handleClickOutside = () => {
   useAppStore().closeSideBar({ withoutAnimation: false });
 };
diff --git a/src/utils/websocket.ts b/src/utils/websocket.ts
index b0c6911..d4dd8a8 100644
--- a/src/utils/websocket.ts
+++ b/src/utils/websocket.ts
@@ -20,6 +20,7 @@
 
 import { getToken } from '@/utils/auth';
 import { ElNotification } from 'element-plus';
+import useNoticeStore from '@/store/modules/notice';
 
 let socketUrl: any = ''; // socket鍦板潃
 let websocket: any = null; // websocket 瀹炰緥
@@ -27,14 +28,12 @@
 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, store: any) => {
+export const initWebSocket = (url: 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);
@@ -99,7 +98,7 @@
 export const reconnect = () => {
   if (socketError <= 2) {
     clearInterval(heartTime);
-    initWebSocket(socketUrl, noticeStore);
+    initWebSocket(socketUrl);
     socketError = socketError + 1;
     // eslint-disable-next-line prettier/prettier
     console.log('socket閲嶈繛', socketError);
@@ -124,7 +123,7 @@
     if (e.data.indexOf('ping') > 0) {
       return;
     }
-    noticeStore.addNotice({
+    useNoticeStore().addNotice({
       message: e.data,
       read: false,
       time: new Date().toLocaleString()

--
Gitblit v1.9.3