diff --git a/src/main/cmds.ts b/src/main/cmds.ts index 0efe21f..8877cdb 100644 --- a/src/main/cmds.ts +++ b/src/main/cmds.ts @@ -5,7 +5,7 @@ import { mihomoRules, mihomoVersion, patchMihomoConfig -} from './mihomo-api' +} from './mihomoApi' import { checkAutoRun, disableAutoRun, enableAutoRun } from './autoRun' import { getAppConfig, diff --git a/src/main/index.ts b/src/main/index.ts index a503aa8..b1d05a6 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -6,7 +6,7 @@ import { registerIpcMainHandlers } from './cmds' import { initConfig, appConfig } from './config' import { stopCore, startCore } from './manager' import { initDirs } from './dirs' -import { mihomoTraffic } from './mihomo-api' +import { mihomoTraffic } from './mihomoApi' import { createTray } from './tray' export let window: BrowserWindow | null = null diff --git a/src/main/mihomo-api.ts b/src/main/mihomoApi.ts similarity index 85% rename from src/main/mihomo-api.ts rename to src/main/mihomoApi.ts index 033ec3c..e685fec 100644 --- a/src/main/mihomo-api.ts +++ b/src/main/mihomoApi.ts @@ -55,12 +55,17 @@ export const mihomoTraffic = (): void => { mihomoTrafficWs = new WebSocket(`ws://${server}/traffic?secret=${secret}`) - mihomoTrafficWs.onmessage = (e: { data: string }): void => { - window?.webContents.send('mihomoTraffic', JSON.parse(e.data) as IMihomoTrafficInfo) + mihomoTrafficWs.onmessage = (e): void => { + const data = e.data as string + window?.webContents.send('mihomoTraffic', JSON.parse(data) as IMihomoTrafficInfo) + } + mihomoTrafficWs.onclose = (): void => { + mihomoTraffic() } - mihomoTrafficWs.onerror = (): void => { - console.error('Traffic ws error') - mihomoConfig() + if (mihomoTrafficWs) { + mihomoTrafficWs.close() + mihomoTrafficWs = null! + } } } diff --git a/src/main/tray.ts b/src/main/tray.ts index 7aa36b9..78d26fd 100644 --- a/src/main/tray.ts +++ b/src/main/tray.ts @@ -1,7 +1,7 @@ import { controledMihomoConfig, setControledMihomoConfig } from './config' import icoIcon from '../../resources/icon.ico?asset' import pngIcon from '../../resources/icon.png?asset' -import { patchMihomoConfig } from './mihomo-api' +import { patchMihomoConfig } from './mihomoApi' import { window } from '.' import { app, ipcMain, Menu, Tray } from 'electron' diff --git a/src/renderer/src/components/sider/sysproxy-switcher.tsx b/src/renderer/src/components/sider/sysproxy-switcher.tsx index 63d6e49..a7120b0 100644 --- a/src/renderer/src/components/sider/sysproxy-switcher.tsx +++ b/src/renderer/src/components/sider/sysproxy-switcher.tsx @@ -26,7 +26,9 @@ const SysproxySwitcher: React.FC = () => { {