From 447cd612152c74fbe7d5b2db351c4a665f9b0a37 Mon Sep 17 00:00:00 2001 From: opensnail <598092184@qq.com> Date: Sun, 30 Mar 2025 18:39:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(1.5.0)-beta1):=20=E6=96=B0=E5=A2=9Ews?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/log-drawer-ws.vue | 619 ++++++++++++++++++ src/utils/websocket.ts | 28 + .../batch/modules/job-batch-detail-drawer.vue | 3 +- 3 files changed, 649 insertions(+), 1 deletion(-) create mode 100644 src/components/common/log-drawer-ws.vue create mode 100644 src/utils/websocket.ts diff --git a/src/components/common/log-drawer-ws.vue b/src/components/common/log-drawer-ws.vue new file mode 100644 index 0000000..eea84f6 --- /dev/null +++ b/src/components/common/log-drawer-ws.vue @@ -0,0 +1,619 @@ + + + + + + + diff --git a/src/utils/websocket.ts b/src/utils/websocket.ts new file mode 100644 index 0000000..cb2c719 --- /dev/null +++ b/src/utils/websocket.ts @@ -0,0 +1,28 @@ +/** socket 通信 */ +import { getServiceBaseURL } from '@/utils/service'; +import { localStg } from './storage'; +const { baseURL } = getServiceBaseURL(import.meta.env, false); +const url = baseURL.replace('http://', 'ws://'); + +/** 生成 token */ +function generateToken(length: number) { + const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; + let token = 'SID_'; + for (let i = 0; i < length; i += 1) { + const randomNumber = Math.floor(Math.random() * chars.length); + token += chars.substring(randomNumber, randomNumber + 1); + } + return token; +} + +// 初始化socket +export function initWebSocket(scene: string) { + const token = localStg.get('token'); + if (import.meta.env.VITE_APP_WEBSOCKET === 'N' || !token) { + return null; + } + + const sid = generateToken(32); + // 初始化 websocket + return new WebSocket(`${url}/websocket?Snail-Job-Auth=${token}&sid=${sid}&scene=${scene}`); +} diff --git a/src/views/job/batch/modules/job-batch-detail-drawer.vue b/src/views/job/batch/modules/job-batch-detail-drawer.vue index b7c7224..d17c973 100644 --- a/src/views/job/batch/modules/job-batch-detail-drawer.vue +++ b/src/views/job/batch/modules/job-batch-detail-drawer.vue @@ -74,7 +74,8 @@ async function retry() { - + +