From 4beed5048afe0bfc3e20ddf6ed1c429417c391d7 Mon Sep 17 00:00:00 2001 From: MoeSnowyFox Date: Wed, 1 Oct 2025 17:13:31 +0800 Subject: [PATCH] =?UTF-8?q?feat(websocket):=20=E5=AE=9E=E7=8E=B0WebSocket?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E7=9B=91=E5=90=AC=E5=92=8C=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加WebSocketMessageListener组件用于全局消息监听- 新增WebSocketDebugPanel调试面板(仅开发环境显示) - 在多个组件中实现基于subscriptionId的WebSocket连接管理 -为MAA和通用配置添加更可靠的连接生命周期控制 - 引入消息测试页面用于调试WebSocket消息处理- 更新调度器逻辑以支持新的WebSocket订阅机制 - 优化WebSocket连接的创建、维护和断开流程 - 添加开发环境下的调度中心调试工具导入- 重构WebSocket相关组件的导入和注册方式 - 移除冗余的电源倒计时相关状态和方法 --- frontend/electron/preload.ts | 4 +- frontend/src/App.vue | 8 + frontend/src/components/ScriptTable.vue | 6 +- .../src/components/WebSocketDebugPanel.vue | 275 ++++++ .../components/WebSocketMessageListener.vue | 359 ++++++++ .../components/devtools/BackendLaunchPage.vue | 1 + .../components/devtools/MessageTestPage.vue | 654 +++++++++++++ frontend/src/components/devtools/index.vue | 2 + frontend/src/composables/useWebSocket.ts | 863 ++++++++---------- frontend/src/main.ts | 23 +- frontend/src/utils/scheduler-debug.ts | 77 ++ frontend/src/views/GeneralUserEdit.vue | 39 +- frontend/src/views/MAAUserEdit.vue | 38 +- frontend/src/views/Scripts.vue | 34 +- .../views/scheduler/SchedulerTaskControl.vue | 7 +- frontend/src/views/scheduler/index.vue | 11 +- .../src/views/scheduler/schedulerConstants.ts | 1 + .../src/views/scheduler/useSchedulerLogic.ts | 24 +- 18 files changed, 1860 insertions(+), 566 deletions(-) create mode 100644 frontend/src/components/WebSocketDebugPanel.vue create mode 100644 frontend/src/components/WebSocketMessageListener.vue create mode 100644 frontend/src/components/devtools/BackendLaunchPage.vue create mode 100644 frontend/src/components/devtools/MessageTestPage.vue create mode 100644 frontend/src/utils/scheduler-debug.ts diff --git a/frontend/electron/preload.ts b/frontend/electron/preload.ts index 1497313..1f927bd 100644 --- a/frontend/electron/preload.ts +++ b/frontend/electron/preload.ts @@ -44,7 +44,7 @@ contextBridge.exposeInMainWorld('electronAPI', { saveConfig: (config: any) => ipcRenderer.invoke('save-config', config), loadConfig: () => ipcRenderer.invoke('load-config'), resetConfig: () => ipcRenderer.invoke('reset-config'), - + // 托盘设置实时更新 updateTraySettings: (uiSettings: any) => ipcRenderer.invoke('update-tray-settings', uiSettings), @@ -54,7 +54,7 @@ contextBridge.exposeInMainWorld('electronAPI', { getLogs: (lines?: number, fileName?: string) => ipcRenderer.invoke('get-logs', lines, fileName), clearLogs: (fileName?: string) => ipcRenderer.invoke('clear-logs', fileName), cleanOldLogs: (daysToKeep?: number) => ipcRenderer.invoke('clean-old-logs', daysToKeep), - + // 保留原有方法以兼容现有代码 saveLogsToFile: (logs: string) => ipcRenderer.invoke('save-logs-to-file', logs), loadLogsFromFile: () => ipcRenderer.invoke('load-logs-from-file'), diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 9d6bc4e..ff32bee 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -9,6 +9,8 @@ import TitleBar from './components/TitleBar.vue' import UpdateModal from './components/UpdateModal.vue' import DevDebugPanel from './components/DevDebugPanel.vue' import GlobalPowerCountdown from './components/GlobalPowerCountdown.vue' +import WebSocketMessageListener from './components/WebSocketMessageListener.vue' +import WebSocketDebugPanel from './components/WebSocketDebugPanel.vue' import zhCN from 'ant-design-vue/es/locale/zh_CN' import { logger } from '@/utils/logger' @@ -53,6 +55,12 @@ onMounted(() => { + + + + + + diff --git a/frontend/src/components/ScriptTable.vue b/frontend/src/components/ScriptTable.vue index 4121090..6a830cf 100644 --- a/frontend/src/components/ScriptTable.vue +++ b/frontend/src/components/ScriptTable.vue @@ -102,7 +102,7 @@ ghost-class="user-ghost" chosen-class="user-chosen" drag-class="user-drag" - @end="evt => onUserDragEnd(evt, script)" + @end="(evt: any) => onUserDragEnd(evt, script)" class="users-list" >