常见任务流程
从正在处理的目标进入,不必按侧边栏顺序阅读。流程只保留操作顺序;字段、接口或配置细节在对应专题页展开。
普通用户流程
Section titled “普通用户流程”- 登录账号,确认邮箱、2FA 或 OAuth2 状态正常。
- 创建房间或打开已有房间入口。
- 如果房间需要密码或审核,按提示提交。
- 添加媒体,或从已有播放列表选择媒体。
- 有播放控制权限时开始播放;没有权限时等待房间管理员开始。
- 播放异常时先刷新播放信息,再确认是否需要代理播放。
- 先确保至少两种本地验证方式可用:密码、passkey、已验证邮箱。
- 绑定 passkey 或完成邮箱验证。
- 开启 2FA。
- 退出后重新登录一次,确认第二因素可用。
- 不要在只剩一种本地验证方式时删除密码、passkey 或邮箱验证。
房间管理员流程
Section titled “房间管理员流程”创建受控房间
Section titled “创建受控房间”- 创建房间,设置清晰名称和说明。
- 根据需要设置房间密码。
- 如果是半公开房间,启用
requireApproval。 - 设置
maxMembers,避免超过服务和上游 Provider 能力。 - 检查 member/guest 默认权限,不要把播放控制、成员封禁等管理权限开放给游客。
- 用普通成员账号加入验证一次。
处理成员问题
Section titled “处理成员问题”| 目标 | 动作 | 注意 |
|---|---|---|
| 临时禁言 | 在成员权限里移除 send_chat | 比修改全房间聊天设置影响更小 |
| 给某人控制播放 | 给成员增加 play_control | 如果还要切媒体,加 change_current_media |
| 清理扰乱成员 | kick 成员 | 踢出后会进入临时重新加入冷却 |
| 调整长期职责 | 修改房间角色或默认权限 | 长期不要依赖大量个人覆盖 |
权限细节见 权限模型 和 房间、权限与用户偏好。
平台管理员流程
Section titled “平台管理员流程”首次上线验收
Section titled “首次上线验收”- 按 生产部署清单 确认 secret、数据库、Redis、TLS 和备份。
- 运行
synctv config validate --strict。 - 检查
/health/ready。 - 登录 root,创建普通用户和测试房间。
- 验证 WebSocket、聊天、播放控制、Provider 浏览、代理播放。
- 启用 metrics 并确认抓取成功。
- 做一次 PostgreSQL 和 secret 恢复演练。
接入一个媒体 Provider
Section titled “接入一个媒体 Provider”- 确认使用本地 Provider 还是远程 Provider instance。
- 配置或创建 Provider instance,确保凭据加密 key 已配置。
- 用管理员账号测试登录、浏览、搜索和播放。
- 分别测试直连和代理播放。
- 对支持 Range 的上游验证 seek 和 slice cache 行为。
- 给普通用户分配合适的 Provider 默认实例或使用说明。
更多配方见 添加媒体。
跑通一个客户端
Section titled “跑通一个客户端”- 读取 客户端集成指南 确认 HTTP、gRPC 和 WebSocket 分工。
- 启动带 OpenAPI 的服务,导出
/api-docs/openapi.json。 - 生成 SDK 或手写最小请求。
- 实现登录和 refresh token 流程。
- 创建 WebSocket ticket 并连接
/ws/rooms/{roomId}。 - 用 Realtime API 订阅播放状态、播放信息、房间设置和成员列表。
- 按 错误参考 处理
status、code、requestId和Retry-After。
新增或修改 API
Section titled “新增或修改 API”- 先确认使用 HTTP/OpenAPI、gRPC 还是 Realtime。
- 修改 proto 或 HTTP handler,保持错误分类和权限检查一致。
- 为新增字段补测试、OpenAPI 或 protobuf 文档。
- 更新 SDK 与 API 示例、Realtime API 或 gRPC 调试。
- 如果破坏已有协议语义,同步更新 API 与 protobuf 演进策略。
容量或性能异常
Section titled “容量或性能异常”- 查看
/metrics中 HTTP、WebSocket、数据库、缓存、Provider、直播和集群指标。 - 按 容量规划 判断瓶颈是连接数、数据库、Redis、Provider 上游、带宽还是存储。
- 优先降低上游压力:开启 Redis、合理使用 slice cache、限制房间人数和连接数。
- 如果是多副本,确认所有节点共享 PostgreSQL、Redis 和一致的 secret。
- 记录版本、部署方式、关键指标和日志,再进入 排障入口。
- 先读 安全加固与密钥轮换。
- 区分可直接轮换的 token、需要用户重新登录的 JWT secret、不能随意更换的 OPAQUE setup secret 和 credential encryption key。
- 备份旧 secret。
- 在测试环境验证登录、Provider 解密、WebSocket、OAuth2 和 WebAuthn。
- 低峰期发布并观察错误率。