diff --git a/README.md b/README.md index 68fbed1..4d526cf 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,15 @@ # v-chat 微信多客户端方案。服务器通过Web版微信接口提供收发微信消息的能力,并允许多个客户端同时连接。 +## 使用 +### 服务端 +`cd packages/server` +`node ./ -c CONFIG_FILE` + +### 客户端 +`cd packages/web` +参考`.env.example`文件,编辑`.env`文件配置环境变量,然后编译:`npm run build`。 + ## 鸣谢 前端程序参考自[fiora](https://github.com/yinxin630/fiora)web聊天室。 服务端程序使用了[wechat4u](https://github.com/nodeWechat/wechat4u)。 diff --git a/packages/web/.env.example b/packages/web/.env.example new file mode 100644 index 0000000..31e87ca --- /dev/null +++ b/packages/web/.env.example @@ -0,0 +1,5 @@ +APP_NAME=dubug +APP_CODE=dubug +SERVER=http://localhost:8094 +API_BASE=http://localhost:8094/ +SOCKET_PATH=/socket.io diff --git a/packages/web/package.json b/packages/web/package.json index 895d34d..b78a297 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -5,8 +5,7 @@ "private": true, "scripts": { "start": "cross-env NODE_ENV=development webpack serve --config build/webpack.dev.js", - "build": "rm -rf dist && cross-env NODE_ENV=production webpack --config build/webpack.prod.js", - "build-relative": "rm -rf dist && cross-env NODE_ENV=production PublicPath=./ webpack --config build/webpack.prod.js" + "build": "rm -rf dist && cross-env NODE_ENV=production webpack --config build/webpack.prod.js" }, "dependencies": { "@loadable/component": "^5.15.0", diff --git a/packages/web/src/@fiora/config/client.ts b/packages/web/src/@fiora/config/client.ts index 1e16f3a..2f72184 100644 --- a/packages/web/src/@fiora/config/client.ts +++ b/packages/web/src/@fiora/config/client.ts @@ -1,12 +1,13 @@ import { MB } from '../utils/const'; export default { - app_name: 'mattuy-laptop', - app_code: 'iasdjfkwe3ds-qw3rjkwjfda8', + app_name: process.env.APP_NAME || 'debug', + app_code: process.env.APP_CODE || 'debug', server: - process.env.Server || - (process.env.NODE_ENV === 'development' ? '//localhost:9200/' : '/bg/'), - + process.env.SERVER || + (process.env.NODE_ENV === 'development' ? '//localhost:8094' : '/'), + socketPath: process.env.SOCKET_PATH || '/socket.io', + apiBase: process.env.API_BASE || '/', maxImageSize: process.env.MaxImageSize ? parseInt(process.env.MaxImageSize, 10) : MB * 5, @@ -24,16 +25,4 @@ export default { defaultTheme: process.env.DefaultTheme || 'cool', sound: process.env.Sound || 'default', tagColorMode: process.env.TagColorMode || 'fixedColor', - - /** - * 前端监控: https://yueying.effirst.com/index - * 值为监控应用id, 为空则不启用监控 - */ - frontendMonitorAppId: process.env.FrontendMonitorAppId || '', - - // 禁止用户撤回消息, 不包括管理员, 管理员始终能撤回任何消息 - // 默认是禁止的 - disableDeleteMessage: process.env.DisableDeleteMessage - ? process.env.DisableDeleteMessage === 'true' - : false, }; diff --git a/packages/web/src/socket.ts b/packages/web/src/socket.ts index 5389a78..b3e22fe 100644 --- a/packages/web/src/socket.ts +++ b/packages/web/src/socket.ts @@ -22,8 +22,10 @@ window.onblur = () => { windowStatus = 'blur'; }; +// 只能通过path参数指定socket url,即使uri参数包含路径也会被忽略 const socket = IO(config.server, { autoConnect: false, + path: config.socketPath, }); socket.on('connect', async () => { diff --git a/packages/web/src/template.html b/packages/web/src/template.html index d850c62..74299ca 100644 --- a/packages/web/src/template.html +++ b/packages/web/src/template.html @@ -2,10 +2,7 @@
-