2.8 KiB
畅联 PC 端(pc-client)
公司内部通讯工具「畅联」的 PC 客户端,基于 OpenIM 官方 Electron 样板(openim-electron-demo,Electron + React 18 + TypeScript + antd 5 + zustand)改造:
- 登录改为工号 + 密码,走自研账号服务(不部署 OpenIM 官方 chat 业务服务 :10008)
- 用户信息、音视频通话令牌等原走 chat 服务的调用,已全部改道 OpenIM SDK 或自研账号服务
- 界面文案全中文,默认语言简体中文
依赖的服务端
见仓库根目录 README.md:OpenIM 服务端(REST :10002 / WS :10001)、自研账号服务(:10010,接口见 account-service/README.md)、LiveKit(:17880)。客户端连接地址在 .env 里配置(VITE_ACCOUNT_URL、VITE_WS_URL、VITE_API_URL 等)。
本地开发
npm install
npm run dev
npm install时注意:本仓库用 allow-scripts 白名单管理依赖安装脚本,需批准electron/esbuild/koffi等包的 postinstall(package.json 里已配好allowScripts字段)。npm run dev启动 Vite 开发服务器(默认同时拉起 Electron 窗口)。npm install若在中文/嵌套路径下提示 husky 找不到.git:属已知非阻塞问题,prepare已写成husky install || true容错,git 钩子不可用但不影响安装与构建。
本地 mock 登录服务(联调用)
真实员工账号由管理员在服务器上开通。本地开发没有真实账号时,可以起一个 mock 账号服务:
npm run mock:account
然后新建 .env.local(已被 gitignore)写入 VITE_ACCOUNT_URL=http://127.0.0.1:11010 覆盖 .env 里的真实地址,用 test001 / test123(或 test002 / test123)登录。mock 服务实现了与真实账号服务相同的 /api/login 和 /api/rtc_token 接口(登录时会真实调用 OpenIM 管理接口换取 imToken;/api/rtc_token 同样要求 Authorization: Bearer <imToken>)。
⚠️ mock 服务内置测试环境默认密钥,仅供本地开发,禁止打包、禁止用于正式环境。
打包
先 npm run build(vite build,产物在 dist/),再用 electron-builder 打包安装包。打包用的脚本在 package_electron.json 里(打包前按原样板说明用它替换 package.json):
npm run build:win # Windows 安装包
验收安装包为 release/Base/1.0.1/畅联_1.0.1.exe(旧版 畅联_1.0.0.exe 已作废)。
如果只想验证构建不产出安装包:npm run build && npx electron-builder(此命令未验证,以 package_electron.json 里的脚本为准)。
其他
- 本项目基于 openim-electron-demo(AGPL-3.0 附加条款),仅作公司内部使用。
- 原样板说明(英文、功能清单等)见上游仓库 https://github.com/openimsdk/openim-electron-demo。