Twilioapp/TWILIO_TEST_GUIDE.md
2025-06-29 01:33:41 +08:00

247 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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. 监控服务器性能
---
**注意**: 这是一个测试环境配置生产环境需要额外的安全和性能优化措施