diff --git a/renderer/src/App.vue b/renderer/src/App.vue index d66d978..622c1aa 100644 --- a/renderer/src/App.vue +++ b/renderer/src/App.vue @@ -45,14 +45,12 @@ onMounted(async () => { setDefaultCss(); pinkLog('OpenMCP Client 启动'); - const platform = getPlatform(); // 跳转到首页 - if (platform !== 'web') { - if (route.name !== 'debug') { - router.replace('/debug'); - router.push('/debug'); - } + if (route.name !== 'debug') { + const targetRoute = import.meta.env.BASE_URL + 'debug'; + console.log('go to ' + targetRoute); + router.push(targetRoute); } // 进行桥接 diff --git a/renderer/src/api/message-bridge.ts b/renderer/src/api/message-bridge.ts index 064b160..70ecbed 100644 --- a/renderer/src/api/message-bridge.ts +++ b/renderer/src/api/message-bridge.ts @@ -1,12 +1,10 @@ import { pinkLog, redLog } from '@/views/setting/util'; import { acquireVsCodeApi, electronApi, getPlatform } from './platform'; -import { privilegeStatus } from '@/components/password-dialog/status'; export interface VSCodeMessage { command: string; data?: unknown; callbackId?: string; - password?: string; } export interface RestFulResponse { @@ -67,51 +65,57 @@ export class MessageBridge { } // WebSocket 环境连接 - private setupWebSocket() { - - const wsUrl = this.setupSignature; + public setupWebSocket(setupSignature?: string) { + const wsUrl = setupSignature || this.setupSignature; if (typeof wsUrl !== 'string') { throw new Error('setupSignature must be a string'); } - + this.ws = new WebSocket(wsUrl); - - this.ws.onmessage = (event) => { - try { - const message = JSON.parse(event.data) as VSCodeMessage; - this.dispatchMessage(message); - } catch (err) { - console.error('Message parse error:', err); - console.log(event); - } - }; - - this.ws.onclose = () => { - redLog('WebSocket connection closed'); - }; - - this.postMessage = (message) => { - if (this.ws?.readyState === WebSocket.OPEN) { - console.log('send', message); - message.password = privilegeStatus.password; - this.ws.send(JSON.stringify(message)); - } - }; - const ws = this.ws; this.isConnected = new Promise((resolve, reject) => { ws.onopen = () => { resolve(true); }; + + ws.onmessage = (event) => { + try { + const message = JSON.parse(event.data) as VSCodeMessage; + this.dispatchMessage(message); + } catch (err) { + console.error('Message parse error:', err); + console.log(event); + } + }; + + ws.onerror = (err) => { + redLog('WebSocket error:'); + resolve(false); + }; + + ws.onclose = () => { + redLog('WebSocket connection closed'); + resolve(false); + }; + + this.postMessage = (message) => { + if (this.ws?.readyState === WebSocket.OPEN) { + console.log('send', message); + this.ws.send(JSON.stringify(message)); + } + }; }); + + return this.isConnected; } public async awaitForWebsocket() { if (this.isConnected) { - await this.isConnected; + return await this.isConnected; } + return false; } private setupElectronListener() { diff --git a/renderer/src/components/guide/tour.vue b/renderer/src/components/guide/tour.vue index d30b87d..122ab47 100644 --- a/renderer/src/components/guide/tour.vue +++ b/renderer/src/components/guide/tour.vue @@ -46,7 +46,7 @@