[ PROMPT_NODE_24256 ]
Realtime Sfu 说明文档
[ SKILL_DOCUMENTATION ]
# Cloudflare 实时 SFU 参考
使用 Cloudflare 实时 SFU (选择性转发单元) 构建实时音频/视频/数据应用的专家指南。
## 阅读顺序
| 任务 | 文件 | ~Tokens |
|------|-------|---------|
| 新项目 | README → configuration | ~1200 |
| 实现发布/订阅 | README → api | ~1600 |
| 添加 PartyTracks | patterns (PartyTracks 章节) | ~800 |
| 构建在线状态系统 | patterns (DO 章节) | ~800 |
| 调试连接问题 | gotchas | ~700 |
| 扩展至百万级 | patterns (Cascading 章节) | ~600 |
| 添加联播 (Simulcast) | patterns (Advanced 章节) | ~500 |
| 配置 TURN | configuration (TURN 章节) | ~400 |
## 本参考内容
- **[configuration.md](configuration.md)** - 设置、部署、环境变量、Wrangler 配置
- **[api.md](api.md)** - 会话、轨道、端点、请求/响应模式
- **[patterns.md](patterns.md)** - 架构模式、用例、集成示例
- **[gotchas.md](gotchas.md)** - 常见问题、调试、性能、安全
## 快速入门
Cloudflare 实时 SFU:基于全球网络(310+ 城市)的 WebRTC 基础设施。Anycast 路由,无区域限制,发布/订阅模型。
**核心概念:**
- **会话 (Sessions):** 到 Cloudflare 边缘节点的 WebRTC PeerConnection
- **轨道 (Tracks):** 你发布或订阅的音频/视频/数据通道
- **无房间概念:** 通过轨道共享自行构建在线状态层(参见 patterns.md)
**思维模型:** 客户端建立一个 WebRTC 会话,发布轨道(音频/视频),通过后端共享轨道 ID,其他人使用轨道 ID + 会话 ID 订阅你的轨道。
## 选择你的方案
| 方案 | 适用场景 | 复杂度 |
|----------|-------------|------------|
| **PartyTracks** | 生产环境应用,需设备切换,React | 低 - 基于 Observable,处理重连 |
| **Raw API** | 自定义需求,非浏览器环境,学习 | 中 - 完全控制,手动管理 WebRTC 生命周期 |
| **RealtimeKit** | 包含 UI 组件的端到端 SDK | 最低 - 托管状态,React Hooks |
**建议:** 大多数生产应用从 PartyTracks 开始。PartyTracks 示例请参见 patterns.md。
## SFU 与 RealtimeKit 的区别
- **实时 SFU:** WebRTC 基础设施(本参考)。需自行构建信令、在线状态、UI。
- **RealtimeKit:** SFU 之上的 SDK 层。包含 React Hooks、状态管理、UI 组件。属于 Cloudflare AI 平台的一部分。
当你需要自定义信令或非 React 框架时,请直接使用 SFU