Easymeeting Client 项目总结
项目概览
这是一个基于 Electron + Vue.js 构建的音视频会议桌面客户端应用,提供完整的会议管理、实时通信、屏幕共享等功能。
技术栈
应用框架: Electron
前端框架: Vue.js 3
状态管理: Pinia
UI框架: Element Plus
构建工具: Electron Vite
样式: SCSS
开发语言: JavaScript (ES6+)
项目结构
easymeeting-client/
├── src/
│ ├── main/ # 主进程代码
│ │ ├── index.js # 主进程入口
│ │ ├── ipc.js # IPC通信逻辑
│ │ ├── recording.js # 录制功能
│ │ ├── store.js # 本地存储
│ │ ├── sysSetting.js # 系统设置
│ │ ├── windowProxy.js # 窗口代理
│ │ └── wsClient.js # WebSocket客户端
│ ├── preload/ # 预加载脚本
│ │ └── index.js
│ └── renderer/ # 渲染进程(Vue应用)
│ ├── index.html # 主页面
│ └── src/
│ ├── main.js # Vue应用入口
│ ├── App.vue # 根组件
│ ├── assets/ # 静态资源
│ ├── components/ # 通用组件
│ ├── views/ # 页面视图
│ ├── router/ # 路由配置
│ ├── stores/ # Pinia状态管理
│ └── utils/ # 工具函数
├── resources/ # 构建资源
├── electron-builder.yml # 构建配置
├── electron.vite.config.mjs # Vite配置
└── package.json # 项目依赖主要功能模块
1. 用户认证
用户登录/注册
用户信息管理
权限控制
2. 会议管理
创建会议
快速会议
会议预约
会议历史记录
会议列表查看
3. 实时通信
音视频通话
屏幕共享
实时聊天
文件传输
4. 会议功能
成员管理
会议录制
会议邀请
会议设置
5. 联系人管理
联系人列表
好友申请
联系人群组
6. 管理后台
用户管理
会议管理
系统设置
更新管理
开发环境配置
环境要求
Node.js ≥ 16
npm 或 pnpm
安装依赖
npm install开发命令
# 开发模式
npm run dev
# 构建生产版本
npm run build
# 构建 Windows 安装包
npm run build:win
# 构建 macOS 安装包
npm run build:mac
# 构建 Linux 安装包
npm run build:linux关键技术实现
1. Electron 架构
主进程: 负责窗口管理、系统级操作、原生功能
渲染进程: 负责用户界面、业务逻辑
IPC通信: 通过预加载脚本安全通信
2. 状态管理
使用 Pinia 进行全局状态管理,包含:
MeetingStore: 会议相关状态
UserInfoStore: 用户信息状态
UserContactStore: 联系人状态
3. 网络架构
API接口: 统一封装 Request.js
WebSocket: 实时消息通信 wsClient.js
代理配置: 支持开发环境跨域
4. 媒体处理
音视频捕获与处理
屏幕捕获与共享
会议录制与回放
5. 错误处理
统一错误处理机制
用户友好的错误提示
日志记录与分析
构建与部署
构建配置
跨平台支持: Windows、macOS、Linux
自动更新: 内置更新机制
权限配置: 摄像头、麦克风、文件访问权限
部署路径
项目配置了通用的自动更新 URL,可根据实际需求修改为实际服务器地址。
项目特色功能
1. 现代化的UI设计
响应式布局
主题系统
国际化支持框架
2. 高性能优化
组件按需加载
虚拟滚动
缓存优化
3. 用户体验
悬浮操作按钮
实时通知系统
快捷键支持
4. 安全性
请求权限验证
数据加密存储
安全的 IPC 通信
开发规范
代码规范
ESLint 代码检查
Prettier 代码格式化
编辑器配置统一
项目约定
统一的组件命名规范
标准化的文件结构
模块化路由配置
后续发展方向
功能增强
AI 语音转文字
自动会议纪要
高级权限控制
技术升级
Vue 3 Composition API 深度应用
TypeScript 迁移
性能进一步优化
平台扩展
Web 版开发
移动应用开发
多语言支持
注意: 该项目为音视频会议系统客户端,使用 Electron 打包后可在 Windows、macOS、Linux 上运行。