基于阿里云 RTC 的双人语音通话 MVP 应用。
- 前端: React + Vite + 阿里云 RTC Web SDK
- 后端: Node.js + Express (Token 服务)
- 架构: Monorepo
npm install在 server/.env 文件中配置:
ALIYUN_APP_ID=your_app_id
ALIYUN_APP_KEY=your_app_key
PORT=3001npm run dev前端地址:http://localhost:5173
后端地址:http://localhost:3001
通过局域网 IP 访问需要 HTTPS!
由于浏览器安全限制,使用麦克风等媒体设备时:
- ✅
http://localhost:5173- 可以正常使用 - ❌
http://192.168.x.x:5173- 会报错(需要 HTTPS)
测试方案:
- 本地测试(推荐):在同一台电脑打开多个标签页,使用
localhost:5173 - 跨设备测试:配置 HTTPS 开发环境,详见 HTTPS_SETUP.md
- 打开应用,点击"开始通话"
- 复制生成的链接
- 发送给对方,对方点击链接即可加入通话
├── client/ # React 前端
│ ├── src/
│ │ ├── pages/ # 页面组件
│ │ ├── components/ # UI 组件
│ │ ├── hooks/ # 自定义 Hooks
│ │ └── services/ # API 服务
├── server/ # Node.js 后端
│ └── src/
│ ├── index.js # 服务器入口
│ └── token.js # Token 生成
└── package.json # Monorepo 配置
快速开始:
# 本地测试
docker-compose up --build
# 部署到阿里云 ECS
./docker/deploy-to-ecs.sh <ECS_IP> <ALIYUN_APP_ID> <ALIYUN_APP_KEY>详细文档:
- 📘 Docker 快速部署指南 - 3 步完成部署
- 📗 Docker 完整部署文档 - 包含云效 Flow 配置
- 📙 传统 ECS 部署 - 使用 PM2 + Nginx
| 方式 | 优势 | 适用场景 |
|---|---|---|
| Docker | ✅ 环境一致 ✅ 快速部署 ✅ 易于扩展 | 推荐所有场景 |
| 云效 Flow | ✅ CI/CD 自动化 ✅ 版本管理 | 生产环境 |
| 传统部署 | ✅ 直接控制 ✅ 资源优化 | 简单场景 |
- WebRTC 需要安全上下文(HTTPS 或 localhost)
- 麦克风权限需要用户授权
- 阿里云 RTC 有免费额度(每月 10,000 分钟)