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 = () => {
{