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() { - + +