From 14f2dad837f4ed14b66d3fa9b9294b3a14796663 Mon Sep 17 00:00:00 2001 From: abearxiong Date: Mon, 26 Jan 2026 18:51:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=20=E4=BC=98=E5=8C=96connect=20ws?= =?UTF-8?q?=E7=9A=84=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assistant/package.json | 2 +- .../assistant/local-app-manager/assistant-app.ts | 6 ++++-- assistant/src/module/light-code/index.ts | 11 +++++++++-- package.json | 2 +- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/assistant/package.json b/assistant/package.json index 57d0b60..b7a2f54 100644 --- a/assistant/package.json +++ b/assistant/package.json @@ -1,6 +1,6 @@ { "name": "@kevisual/assistant-cli", - "version": "0.0.7", + "version": "0.0.8", "description": "", "main": "dist/assistant.mjs", "keywords": [ diff --git a/assistant/src/module/assistant/local-app-manager/assistant-app.ts b/assistant/src/module/assistant/local-app-manager/assistant-app.ts index a6423dd..ab26aee 100644 --- a/assistant/src/module/assistant/local-app-manager/assistant-app.ts +++ b/assistant/src/module/assistant/local-app-manager/assistant-app.ts @@ -100,7 +100,9 @@ export class AssistantApp extends Manager { if (isConnect) { remoteApp.listenProxy(); this.remoteIsConnected = true; - remoteApp.emitter.once('close', () => { + // 清理已有的 close 事件监听器,防止多重绑定 + remoteApp.emitter.removeAllListeners('close'); + remoteApp.emitter.on('close', () => { setTimeout(() => { if (remoteApp.isError) { console.error('远程应用发生错误,不重连'); @@ -201,8 +203,8 @@ export class AssistantApp extends Manager { remoteApp.listenProxy(); this.attemptedConnectTimes = 0; console.log('重新连接到了远程应用服务器'); - this.reconnectRemoteApp(); } else { + this.reconnectRemoteApp(); setTimeout(() => { this.initRouterApp() }, 30 * 1000 + this.attemptedConnectTimes * 10 * 1000); // 30秒后重连 + 每次增加10秒 diff --git a/assistant/src/module/light-code/index.ts b/assistant/src/module/light-code/index.ts index 01caea9..0c26a1f 100644 --- a/assistant/src/module/light-code/index.ts +++ b/assistant/src/module/light-code/index.ts @@ -138,11 +138,18 @@ export const initLightCode = async (opts: opts) => { continue; } // console.log(`注册 light-code 路由: [${routerItem.path}] ${routerItem.id} 来自文件: ${file.filepath}`); + const metadata = routerItem.metadata || {}; + if (metadata.tags && Array.isArray(metadata.tags)) { + metadata.tags.push('light-code'); + } else { + metadata.tags = ['light-code']; + } app.route({ id: routerItem.id, - path: routerItem.id!, + path: `${routerItem.id}__${routerItem.path}`, + key: routerItem.key, description: routerItem.description || '', - metadata: routerItem.metadata || {}, + metadata, middleware: ['auth'], }).define(async (ctx) => { const tokenUser = ctx.state?.tokenUser || {}; diff --git a/package.json b/package.json index 658456b..691ac1c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kevisual/cli", - "version": "0.0.93", + "version": "0.0.94", "description": "envision 命令行工具", "type": "module", "basename": "/root/cli",