# Voice Room Business Roadmap

本文档只列语音房业务从当前阶段到可运营版本需要完成的内容。每一阶段都必须有可验收结果，不做泛化平台能力。

## Phase 1: 房间基础闭环

目标：用户可以稳定开房、进房、离房、断线重连。

必须完成：

| Item | Result |
| --- | --- |
| 创建房间 | 房主创建 active 房间并获得快照 |
| 进房 | 用户进入 room-service presence |
| 腾讯云 IM 进群 | JoinRoom 成功后客户端才能登录 IM 并加入房间群 |
| 离房 | 主动退出后 presence 和订阅权限清理 |
| 断线重连 | token 刷新、JoinRoom 幂等刷新、腾讯云 IM 重新登录进群、历史补拉 |
| 恢复 | room-service 重启后能恢复房间状态 |

验收：两个用户完成“开房 -> 进房 -> 腾讯云 IM 进群 -> 断线 -> 重连 -> 离房”，状态和消息都正确。

## Phase 2: RTC 语音接入

目标：用户进房后能进入真实语音频道。

必须完成：

| Item | Result |
| --- | --- |
| RTC token | gateway 返回腾讯云 RTC 所需 token |
| RTC user_id 映射 | RTC uid 与系统 `user_id` 稳定绑定 |
| 进频道 | JoinRoom 成功后才能拿 RTC token |
| 离频道 | LeaveRoom 后客户端退出 RTC |
| 异常断线 | RTC 断开不立即等于业务离房 |

验收：用户进房后能听说，断线重连后能回到同一房间。

## Phase 3: 麦位和房间管理

目标：语音房具备基本主持和秩序。

必须完成：

| Item | Result |
| --- | --- |
| 上麦/下麦 | 用户可以占用和释放麦位 |
| 换麦 | 主持或管理员可以调整麦位 |
| 锁麦 | 被锁麦位不能被普通用户占用 |
| 禁言 | 被禁言用户不能发公屏 |
| 踢人 | 被踢用户不能订阅房间 |
| 角色 | owner、host、admin、audience 权限清晰 |

验收：主持能管理一场房，恶意用户不能继续发言或收消息。

## Phase 4: IM 房间消息闭环

目标：房间内消息可用、可恢复、可补拉。

必须完成：

| Item | Result |
| --- | --- |
| 公屏消息 | 通过 CheckSpeakPermission 后广播 |
| 系统消息 | 进房、离房、上下麦、踢人等自动广播 |
| 历史窗口 | 最近 N 条房间消息可补拉 |
| 单聊 | 基础 peer_message 可发送 |
| ACK | peer_message 和 system_notice 支持 ACK |

验收：用户重进房后能补拉最近消息，禁言用户不能发公屏。

## Phase 5: 金币和普通礼物

目标：语音房可以产生基础商业行为。

必须完成：

| Item | Result |
| --- | --- |
| 金币账户 | wallet-service 维护余额和账单 |
| 扣费幂等 | 重复请求不重复扣金币 |
| 礼物配置 | 礼物 ID、价格、热度、表现可配置 |
| SendGift | 扣费成功后进入 Room Cell |
| 房间表现 | 热度、本地榜、礼物消息同步变化 |
| outbox | activity、notice、IM bridge 可通过 direct 或 RocketMQ 消费完整房间事件 |

验收：用户送普通礼物后金币减少、房间热度增加、榜单变化、消息广播成功。

## Phase 6: 用户资料和短号

目标：用户在房间内有可展示身份。

必须完成：

| Item | Result |
| --- | --- |
| 基础资料 | 昵称、头像、性别、简介 |
| 默认短号 | 注册生成，可搜索 |
| 临时靓号 | 有效期内覆盖默认短号，过期恢复 |
| 资料缓存 | IM/客户端展示资料时可补全 |

验收：房间内展示当前短号和资料，靓号过期后恢复默认短号。

## Phase 7: 风控和运营后台

目标：房间可控、问题可查。

必须完成：

| Item | Result |
| --- | --- |
| 登录审计 | 能查登录、设备、IP |
| 房间审计 | 能查创建、进出、管理动作 |
| 账务审计 | 能查扣费和入账 |
| 基础风控 | 刷屏、频控、封禁、黑名单 |
| 后台操作 | 封禁用户、关房、查房间状态 |

验收：出现投诉或异常送礼时，能定位用户、房间、消息、账单和操作记录。

## Phase 8: 活动和幸运礼物

目标：在基础商业闭环稳定后做增长玩法。

必须完成：

| Item | Result |
| --- | --- |
| activity-service | 消费房间 outbox 事件 |
| 活动配置 | 活动时间、规则、奖励 |
| 幸运礼物 | 三层奖池 + 一层风控 |
| 奖励入账 | 金币返还通过 wallet-service |
| 审计 | 抽奖结果、奖池、风控阈值可追溯 |

验收：幸运礼物返还率可控，结果可审计，不影响普通送礼稳定性。

## Current Focus

现在只做 Phase 1。

本阶段完成前，不应该优先做：

| Do Not Prioritize | Reason |
| --- | --- |
| 幸运礼物 | 依赖金币和普通礼物闭环 |
| 房间推荐 | 单房间基础链路还未稳定 |
| 复杂活动 | 依赖 outbox 消费和账务 |
| 多端漫游 | 首版先保证单端重连 |
| 主备热同步 | 当前恢复模型是 snapshot + command log |
