- 最近在做
音视频会议系统服务
搭建的工作任务,因为内容过多,我会逐篇分享相关的设计方案、开发思路、编程语言、使用的组件集合等等。- 如果你也有大型音视频会议系统搭建架构的需求,希望这些可以对你有所帮助。
EchoMeet是基于WebRTC技术的企业级音视频会议解决方案,采用三层音视频架构和Go+Node.js双后端微服务设计,实现了高并发、低延迟、可扩展的视频会议系统。
层次 | 技术栈 | 说明 |
---|---|---|
前端层 | Vue3 + TypeScript + Vite | 现代化Web应用,支持双系统独立构建 |
信令层 | Go 1.19 + Gin + WebSocket | 高并发信令处理,JWT认证,会议管理 |
媒体层 | Node.js + mediasoup v3 | SFU媒体服务器,处理音视频转发 |
数据层 | MySQL 8.0 + Redis 6.0 | 关系型数据存储 + 高性能缓存 |
部署层 | Docker + docker-compose | 容器化部署,一键启动 |
已补充-点击跳转
)-- 核心业务表结构
users -- 用户基础信息表
user_meeting_configs -- 用户会议配置表
meeting_rooms -- 会议室表(临时/固定/个人)
meetings -- 会议表(会议会话记录)
meeting_participants -- 会议参与者表
meeting_invitations -- 会议邀请表
meeting_messages -- 会议消息表(实时聊天)
meeting_recordings -- 会议录制表
meeting_templates -- 会议模板表
meeting_statistics -- 会议统计表
详细设计参考:数据库设计文档-点击跳转查看
消息类型 | 方向 | 说明 |
---|---|---|
auth |
C→S | JWT用户认证 |
join-room |
C→S | 加入会议室 |
leave-room |
C→S | 离开会议室 |
get-router-rtp-capabilities |
C→S | 获取Router能力 |
create-send-transport |
C→S | 创建发送传输 |
create-recv-transport |
C→S | 创建接收传输 |
connect-transport |
C→S | 连接传输通道 |
produce |
C→S | 生产媒体流 |
consume |
C→S | 消费媒体流 |
ws://localhost:8081/api/v1/ws
- WebSocket连接端点GET /api/v1/ws/stats
- 连接统计信息GET /api/v1/ws/rooms
- 会议室信息查询GET /api/v1/ws/health
- 服务健康检查详细协议参考:信令协议规范(待追加
)
# 客户端系统开发
npm run dev:client # 端口3000
# 管理系统开发
npm run dev:admin # 端口3001
# 独立构建
npm run build:client # 输出到 dist/client
npm run build:admin # 输出到 dist/admin
详细架构参考:架构对比分析(待追加
)
services:
mysql: # MySQL 8.0 数据库
redis: # Redis 6.0 缓存
admin-system: # 管理系统后端
client-system: # 客户端系统后端
frontend: # 前端静态资源
# mediasoup: # Node.js媒体服务器(开发中)
# 克隆项目
git clone https://github.com/your-org/echomeet.git
cd echomeet
# 启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 启动管理系统
cd backend/admin-system
go run main.go
# 启动客户端系统
cd backend/client-system
go run main.go
cd frontend
# 安装依赖
npm install
# 启动客户端系统
npm run dev:client
# 启动管理系统
npm run dev:admin
待追加
)待追加
)feat: 新增功能
fix: 修复bug
docs: 文档更新
style: 代码格式调整
refactor: 代码重构
test: 测试相关
chore: 构建配置等
main
:生产环境分支dev
:开发分支feature/*
:功能开发分支hotfix/*
:紧急修复分支文档 | 说明 |
---|---|
数据库设计 | 详细的数据库表结构设计 |
信令协议 | WebSocket信令协议规范(待追加 ) |
Redis分析 | Redis使用场景和优化建议(待追加 ) |
架构对比 | 不同架构方案的对比分析(待追加 ) |
数据流转 | 详细的数据流转架构说明(待追加 ) |
开发总结 | 当前开发进度和下一步计划 (待追加 ) |
EchoMeet - 让每一次会议都精彩!