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