From aae15f3240515b2f1c967ea4e5639b444e64fcdc Mon Sep 17 00:00:00 2001 From: yangsy Date: Fri, 29 Aug 2025 11:42:53 +0800 Subject: [PATCH] chore: vite proxy for websocket --- vite.config.ts | 68 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 60 insertions(+), 8 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index 9b09ba4..54d8fed 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,15 +5,55 @@ import vue from '@vitejs/plugin-vue'; import vueJsx from '@vitejs/plugin-vue-jsx'; import vueDevTools from 'vite-plugin-vue-devtools'; +const line10ApiProxyList: [string, string][] = [ + ['/ws', 'ws://10.18.128.10:18103'], + ['/minio', 'http://10.18.128.10:9000'], + ['/api', 'http://10.18.128.10:18760/api'], + ['/1075/api', 'http://10.18.128.10:18760/api'], + + ['/1001/api', 'http://10.18.129.10:18760/api'], + ['/1002/api', 'http://10.18.131.10:18760/api'], + ['/1003/api', 'http://10.18.133.10:18760/api'], + ['/1004/api', 'http://10.18.135.10:18760/api'], + ['/1005/api', 'http://10.18.137.10:18760/api'], + ['/1006/api', 'http://10.18.139.10:18760/api'], + ['/1007/api', 'http://10.18.141.10:18760/api'], + ['/1008/api', 'http://10.18.143.10:18760/api'], + ['/1009/api', 'http://10.18.145.10:18760/api'], + ['/1010/api', 'http://10.18.147.10:18760/api'], + + ['/1011/api', 'http://10.18.149.10:18760/api'], + ['/1012/api', 'http://10.18.151.10:18760/api'], + ['/1013/api', 'http://10.18.153.10:18760/api'], + ['/1014/api', 'http://10.18.155.10:18760/api'], + ['/1015/api', 'http://10.18.157.10:18760/api'], + ['/1016/api', 'http://10.18.159.10:18760/api'], + ['/1017/api', 'http://10.18.161.10:18760/api'], + ['/1018/api', 'http://10.18.163.10:18760/api'], + ['/1019/api', 'http://10.18.165.10:18760/api'], + ['/1020/api', 'http://10.18.167.10:18760/api'], + + ['/1021/api', 'http://10.18.169.10:18760/api'], + ['/1022/api', 'http://10.18.171.10:18760/api'], + ['/1023/api', 'http://10.18.173.10:18760/api'], + ['/1024/api', 'http://10.18.175.10:18760/api'], + ['/1025/api', 'http://10.18.177.10:18760/api'], + ['/1026/api', 'http://10.18.179.10:18760/api'], + ['/1027/api', 'http://10.18.181.10:18760/api'], + ['/1028/api', 'http://10.18.183.10:18760/api'], + ['/1029/api', 'http://10.18.185.10:18760/api'], + ['/1030/api', 'http://10.18.187.10:18760/api'], + + ['/1031/api', 'http://10.18.189.10:18760/api'], +]; const apiProxyList: [string, string][] = [ - ['/minio', 'http://172.16.6.248:9002'], - // ['/api', 'http://172.16.6.248:18760/api'], - // ['/api', 'http://localhost:3000/api'], - // ['/10/api', 'http://localhost:3000/api'], - // ['/11/api', 'http://localhost:3000/api'], - ['/api', 'http://172.16.6.113:18760/api'], - ['/113/api', 'http://172.16.6.113:18760/api'], - ['/114/api', 'http://172.16.6.114:18760/api'], + // 办公室 + // ['/minio', 'http://172.16.6.248:9002'], + // ['/api', 'http://172.16.6.113:18760/api'], + // ['/113/api', 'http://172.16.6.113:18760/api'], + // ['/114/api', 'http://172.16.6.114:18760/api'], + // ...line4ApiProxyList, + ...line10ApiProxyList, ]; // https://vite.dev/config/ @@ -21,6 +61,18 @@ export default defineConfig((/* { command, mode } */) => { const viteProxy: Record = {}; apiProxyList.forEach((apiProxy) => { const [prefix, target] = apiProxy; + if (prefix === '/ws') { + // from Claude4: 对于WebSocket代理,不应该使用rewrite函数。 + // WebSocket握手和HTTP请求的处理机制不同,rewrite主要是为HTTP请求设计的。 + // 会代理到 ws://:/ws + viteProxy[prefix] = { + target, + changeOrigin: true, + ws: true, + rewriteWsOrigin: true, + }; + return; + } viteProxy[prefix] = { target, changeOrigin: true,