一起听房间创建、加入与深链加入完整流程
角色定义
| 角色 | 权限 |
|---|---|
| 房主 | 创建房间、管理成员、控制播放(选曲/暂停/循环/随机)、复制邀请链接和密钥 |
| 听众 | 加入房间、被动接收播放状态、可选发起成员控制请求 |
创建房间
房主在「现在播放 → 一起听」中创建新房间。创建时:
- 本地歌曲不能建房或替换房间当前曲目——房间当前曲目必须是在线音源,其他听众才拿得到
- 房主自动成为房间唯一成员,开始播放后听众可以加入
加入房间
听众有两种加入方式:
| 方式 | 说明 |
|---|---|
| 邀请链接 | 房主复制的完整链接,包含房间密钥(首次加入必须提供) |
| 深链加入 | NeriPlayer 深链协议自动识别(如 neriplayer://listen-together/join) |
首次加入必须提供邀请密钥——密钥不会出现在公开房间状态里。成员重连时使用成员密钥,不需要重新提供邀请密钥。
点击加入时应用会从剪贴板读取有效邀请,剪贴板没有有效邀请则不会入房、不会静默失败。
邀请密钥的保护
- 房主可分别复制「邀请链接」和「邀请密钥」
- 邀请链接必须包含房间密钥
- 成员密钥不会出现在公开房间状态中
- 房主离线后房间的恢复依赖 Durable Objects 持久化的房间状态
会话候选共享
开启会话候选共享后,房主当前歌曲的候选播放地址会由 Cloudflare Worker 临时缓存。听众在成员会话内可直接取得这些候选,无需等待房主再次响应。
- [会话候选共享]${1}03-session-candidate-share.md${2}
- [自建服务端部署]${1}04-self-host-deploy.md${2}