247 lines
4.8 KiB
Markdown
247 lines
4.8 KiB
Markdown
# Twilio 视频通话服务完整测试指南
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 1. 环境准备
|
||
|
||
#### 后端服务器
|
||
```bash
|
||
# 进入服务器目录
|
||
cd server
|
||
|
||
# 安装依赖
|
||
npm install
|
||
|
||
# 启动服务器
|
||
npm start
|
||
```
|
||
|
||
服务器将在 `http://localhost:3001` 启动
|
||
|
||
#### 前端应用
|
||
```bash
|
||
# 在项目根目录
|
||
npm install
|
||
|
||
# 启动开发服务器
|
||
npm run dev
|
||
```
|
||
|
||
前端应用将在 `http://localhost:5173` 启动
|
||
|
||
### 2. Twilio 配置
|
||
|
||
在 `server/index.js` 中更新您的 Twilio 凭证:
|
||
|
||
```javascript
|
||
const TWILIO_CONFIG = {
|
||
accountSid: 'YOUR_TWILIO_ACCOUNT_SID',
|
||
apiKey: 'YOUR_TWILIO_API_KEY',
|
||
apiSecret: 'YOUR_TWILIO_API_SECRET',
|
||
};
|
||
```
|
||
|
||
或者设置环境变量:
|
||
```bash
|
||
export TWILIO_ACCOUNT_SID=your_account_sid
|
||
export TWILIO_API_KEY=your_api_key
|
||
export TWILIO_API_SECRET=your_api_secret
|
||
```
|
||
|
||
## 🧪 测试步骤
|
||
|
||
### 步骤 1: 后端 API 测试
|
||
|
||
#### 1.1 健康检查
|
||
```bash
|
||
curl http://localhost:3001/health
|
||
```
|
||
|
||
预期响应:
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"timestamp": "2024-01-01T00:00:00.000Z",
|
||
"service": "Twilio Token Server"
|
||
}
|
||
```
|
||
|
||
#### 1.2 获取访问令牌
|
||
```bash
|
||
curl -X POST http://localhost:3001/api/twilio/token \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"identity": "test-user",
|
||
"roomName": "test-room"
|
||
}'
|
||
```
|
||
|
||
预期响应:
|
||
```json
|
||
{
|
||
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImN0eSI6InR3aWxpby1mcGE7dj0xIn0...",
|
||
"identity": "test-user",
|
||
"roomName": "test-room"
|
||
}
|
||
```
|
||
|
||
### 步骤 2: 前端功能测试
|
||
|
||
#### 2.1 访问视频通话页面
|
||
1. 打开浏览器访问 `http://localhost:5173`
|
||
2. 导航到视频通话相关页面
|
||
3. 查看设备检测是否正常工作
|
||
|
||
#### 2.2 设备测试面板
|
||
访问 `/device-test` 页面进行设备测试:
|
||
|
||
1. **摄像头测试**
|
||
- 点击"测试摄像头"按钮
|
||
- 确认能看到视频预览
|
||
- 检查视频质量
|
||
|
||
2. **麦克风测试**
|
||
- 点击"测试麦克风"按钮
|
||
- 说话并观察音频指示器
|
||
- 确认音频输入正常
|
||
|
||
3. **扬声器测试**
|
||
- 点击"测试扬声器"按钮
|
||
- 确认能听到测试音频
|
||
|
||
#### 2.3 视频通话测试
|
||
|
||
1. **创建房间**
|
||
- 输入房间名称
|
||
- 输入用户身份
|
||
- 点击"加入房间"
|
||
|
||
2. **多用户测试**
|
||
- 在另一个浏览器标签页或设备上
|
||
- 使用不同的用户身份加入同一房间
|
||
- 测试双向视频通话
|
||
|
||
## 📱 设备兼容性测试
|
||
|
||
### 桌面浏览器
|
||
- ✅ Chrome (推荐)
|
||
- ✅ Firefox
|
||
- ✅ Safari
|
||
- ⚠️ Edge (部分功能)
|
||
|
||
### 移动设备
|
||
- ✅ iOS Safari
|
||
- ✅ Android Chrome
|
||
- ⚠️ 其他移动浏览器
|
||
|
||
### 测试检查清单
|
||
|
||
#### 基础功能
|
||
- [ ] 摄像头权限请求
|
||
- [ ] 麦克风权限请求
|
||
- [ ] 视频预览显示
|
||
- [ ] 音频输入检测
|
||
- [ ] 房间创建和加入
|
||
|
||
#### 视频通话功能
|
||
- [ ] 本地视频显示
|
||
- [ ] 远程视频接收
|
||
- [ ] 音频双向通信
|
||
- [ ] 视频质量自适应
|
||
- [ ] 网络断线重连
|
||
|
||
#### 用户界面
|
||
- [ ] 控制按钮响应
|
||
- [ ] 设备切换功能
|
||
- [ ] 全屏模式
|
||
- [ ] 静音/取消静音
|
||
- [ ] 视频开启/关闭
|
||
|
||
## 🐛 常见问题排查
|
||
|
||
### 问题 1: 无法获取访问令牌
|
||
**症状**: API 返回 500 错误
|
||
**解决方案**:
|
||
1. 检查 Twilio 凭证是否正确
|
||
2. 确认网络连接正常
|
||
3. 查看服务器日志
|
||
|
||
### 问题 2: 摄像头/麦克风权限被拒绝
|
||
**症状**: 浏览器显示权限被阻止
|
||
**解决方案**:
|
||
1. 在浏览器设置中允许摄像头和麦克风权限
|
||
2. 使用 HTTPS 连接(生产环境)
|
||
3. 刷新页面重新请求权限
|
||
|
||
### 问题 3: 视频通话连接失败
|
||
**症状**: 无法看到远程视频
|
||
**解决方案**:
|
||
1. 检查防火墙设置
|
||
2. 确认 STUN/TURN 服务器配置
|
||
3. 测试网络连接质量
|
||
|
||
### 问题 4: 音频质量差或有回音
|
||
**症状**: 音频断断续续或有回音
|
||
**解决方案**:
|
||
1. 使用耳机减少回音
|
||
2. 调整麦克风音量
|
||
3. 检查网络带宽
|
||
|
||
## 📊 性能监控
|
||
|
||
### 关键指标
|
||
- **连接建立时间**: < 3 秒
|
||
- **视频延迟**: < 200ms
|
||
- **音频延迟**: < 150ms
|
||
- **丢包率**: < 1%
|
||
|
||
### 监控工具
|
||
1. 浏览器开发者工具
|
||
2. Twilio Insights Dashboard
|
||
3. 网络质量检测
|
||
|
||
## 🔧 高级配置
|
||
|
||
### 视频质量设置
|
||
```javascript
|
||
const videoConfig = {
|
||
width: { ideal: 1280 },
|
||
height: { ideal: 720 },
|
||
frameRate: { ideal: 30 }
|
||
};
|
||
```
|
||
|
||
### 音频设置
|
||
```javascript
|
||
const audioConfig = {
|
||
echoCancellation: true,
|
||
noiseSuppression: true,
|
||
autoGainControl: true
|
||
};
|
||
```
|
||
|
||
## 📞 技术支持
|
||
|
||
如果遇到问题,请:
|
||
1. 查看浏览器控制台错误信息
|
||
2. 检查服务器日志
|
||
3. 参考 Twilio 官方文档
|
||
4. 联系技术支持团队
|
||
|
||
## 🚀 生产环境部署
|
||
|
||
### 安全考虑
|
||
1. 使用 HTTPS
|
||
2. 实施用户认证
|
||
3. 设置访问令牌过期时间
|
||
4. 配置 CORS 策略
|
||
|
||
### 性能优化
|
||
1. 使用 CDN 加速
|
||
2. 启用 gzip 压缩
|
||
3. 配置负载均衡
|
||
4. 监控服务器性能
|
||
|
||
---
|
||
|
||
**注意**: 这是一个测试环境配置,生产环境需要额外的安全和性能优化措施。 |