5a65716d1057292a99e9a9c2104a1f26774b021d
README.md: - 开发环境端口 8080 → 8085 - 统一响应格式添加 trace_id 字段 - 成功消息 "ok" → "success",创建 "created" frontend/auth.md(全面更新): - 注册响应:201 状态码 + message="created" + expires_in=7200 - 所有响应示例:添加 trace_id 和 time 字段 - user 对象:添加 gender 字段 - 退出登录:更新为无状态 JWT 说明(非 Redis) - 刷新 Token:添加 user 字段到响应 - profile:添加 phone + created_at 字段 - 错误码:统一使用 HTTP 状态码说明表 代码同步: - dto.UserInfo: 添加 Phone + CreatedAt 字段 - auth_service.buildUserInfo: 填充新字段 Made-with: Cursor
EchoChat - 音视频会议直播系统
EchoChat 是一套跨端可用、可扩展、可演进的实时音视频会议直播系统。支持即时聊天、多人音视频会议、互动直播等核心功能,采用控制面与媒体面彻底分离的架构设计。
技术栈
| 层级 | 技术 | 说明 |
|---|---|---|
| 前台前端 | uniapp (Vue 3) + mediasoup-client | 多端适配(H5/App/小程序) |
| 后台管理端 | Vue 3 + Vite + Element Plus | PC Web 管理后台 |
| 后端服务 | Go (Gin + GORM + Wire + zap) | 业务逻辑、信令控制 |
| 媒体服务 | Node.js + mediasoup | SFU 媒体控制与转发 |
| 数据库 | PostgreSQL 17 | 持久化数据存储 |
| 缓存 | Redis 7 | 实时状态、会话缓存 |
| 部署 | Docker Compose / Nginx | 容器化部署,预留 K8s |
系统架构
客户端 (uniapp / Vue3 管理端)
│
│ WebSocket + HTTP
│
Go 单体服务 (模块化)
│ ├── auth 用户认证鉴权
│ ├── im 即时通讯
│ ├── contact 联系人管理
│ ├── meeting 会议控制/信令
│ ├── notify 消息通知
│ └── admin 后台管理
│
├── PostgreSQL (持久化数据)
├── Redis (实时状态)
│
│ HTTP
│
mediasoup Node 服务
│ IPC
mediasoup Worker (C++ SFU)
核心设计思想:控制面与媒体面分离。Go 处理所有业务逻辑和信令控制,mediasoup 专注音视频媒体转发,音视频流直连 SFU Worker,不经过 Go 服务。
项目结构
EchoChat/
├── frontend/ # 前台用户端 (uniapp)
├── admin/ # 后台管理端 (Vue 3 + Element Plus)
├── backend/
│ └── go-service/ # Go 后端服务
├── media-server/ # mediasoup Node 媒体服务
├── deploy/ # 部署配置 (Docker / Nginx / K8s)
├── docs/ # 项目文档
│ ├── plans/ # 设计方案与实施计划
│ ├── api/ # API 接口文档
│ └── architecture/ # 架构设计文档
├── scripts/ # 脚本工具
└── README.md
快速开始
环境要求
- Go 1.22+
- Node.js 18+
- Docker & Docker Compose
- PostgreSQL 17 (通过 Docker)
- Redis 7 (通过 Docker)
1. 启动基础设施
cd deploy
docker compose -f docker-compose.dev.yml up -d
2. 启动 Go 后端
cd backend/go-service
go mod tidy
go run cmd/server/main.go
3. 启动前台前端
cd frontend
npm install
npm run dev:h5
4. 启动管理端
cd admin
npm install
npm run dev
MVP 功能规划(第一期)
- 设计方案与架构文档
- 用户注册/登录(邮箱+密码、用户名+密码)
- 即时聊天(单聊 + 群聊,文字/图片/文件)
- 联系人/好友管理
- 多人音视频会议(即时会议 + 预约会议)
- 消息通知系统
- 后台管理端(用户管理、会议监控、系统配置)
后续规划
- 屏幕共享
- 微信授权登录
- 互动直播(主播/观众/弹幕)
- 会议录制与回放
- 微服务拆分 + K8s 部署
- AI 辅助功能(语音转文字、会议纪要)
文档导航
| 文档 | 路径 | 说明 |
|---|---|---|
| 整体设计方案 | docs/plans/2026-02-27-echochat-system-design.md | 系统完整设计方案 |
| 第一阶段实施计划 | docs/plans/2026-02-27-phase1-foundation-and-auth.md | 基础设施+用户体系实施步骤 |
| 系统架构文档 | docs/architecture/system-architecture.md | 架构分层与技术选型 |
| API 接口文档 | docs/api/ | 按端+模块拆分的 REST API + WebSocket 事件定义 |
开源协议
MIT License
Description
Languages
Go
40.6%
Vue
33.2%
JavaScript
12.5%
TypeScript
5.2%
Blade
4%
Other
4.4%