From 0fb0a8e4e99e27fdaaf150cee647d97219b949cb Mon Sep 17 00:00:00 2001 From: Baobhan Sith <80159437+Heavrnl@users.noreply.github.com> Date: Sat, 10 May 2025 11:14:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=A9=BA=E5=9B=9E?= =?UTF-8?q?=E8=BD=A6=E5=AF=BC=E8=87=B4=E6=81=A2=E5=A4=8D=E4=BC=9A=E8=AF=9D?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E9=87=8D=E8=BF=9E=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/backend/src/websocket/connection.ts | 19 ++++++++++++++++--- packages/backend/src/websocket/types.ts | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/packages/backend/src/websocket/connection.ts b/packages/backend/src/websocket/connection.ts index 2301e62..d785f8d 100644 --- a/packages/backend/src/websocket/connection.ts +++ b/packages/backend/src/websocket/connection.ts @@ -232,13 +232,26 @@ export function initializeConnectionHandler(wss: WebSocketServer, sshSuspendServ } else { // console.warn(`[WebSocket Handler][${type}] WebSocket 在发送 SSH_OUTPUT_CACHED_CHUNK 前已关闭 (会话 ${newFrontendSessionId})。`); } + + // +++ 新增:发送 ssh:connected 消息 +++ + if (ws.readyState === WebSocket.OPEN) { + ws.send(JSON.stringify({ + type: 'ssh:connected', + payload: { + connectionId: newSessionState.dbConnectionId, // 使用已恢复的 dbConnectionId + sessionId: newFrontendSessionId // 使用新的前端会话 ID + } + })); + console.log(`[WebSocket Handler][SSH_SUSPEND_RESUME_REQUEST] 已发送 ssh:connected 给 ${newFrontendSessionId}。`); + } + // +++ 结束新增 +++ - const response: SshSuspendResumedNotification = { - type: 'SSH_SUSPEND_RESUMED', + const responseNotification: SshSuspendResumedNotification = { // 确保变量名不冲突且类型正确 + type: 'SSH_SUSPEND_RESUMED_NOTIF', // 改回与前端和新类型定义一致 payload: { suspendSessionId, newFrontendSessionId, success: true } }; if (ws.readyState === WebSocket.OPEN) { - ws.send(JSON.stringify(response)); + ws.send(JSON.stringify(responseNotification)); // console.log(`[WebSocket Handler][${type}] 已发送 SSH_SUSPEND_RESUMED_NOTIF 给 ${newFrontendSessionId}。`); } else { // console.warn(`[WebSocket Handler][${type}] WebSocket 在发送 SSH_SUSPEND_RESUMED_NOTIF 前已关闭 (会话 ${newFrontendSessionId})。`); diff --git a/packages/backend/src/websocket/types.ts b/packages/backend/src/websocket/types.ts index ddb3deb..4526e62 100644 --- a/packages/backend/src/websocket/types.ts +++ b/packages/backend/src/websocket/types.ts @@ -150,7 +150,7 @@ export interface SshSuspendListResponse { } export interface SshSuspendResumedNotification { - type: "SSH_SUSPEND_RESUMED"; + type: "SSH_SUSPEND_RESUMED_NOTIF"; // 统一为带 _NOTIF 后缀 payload: { suspendSessionId: string; newFrontendSessionId: string; // The frontend session ID this resumed session is now associated with