这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
互动功能
直播间不只有弹幕和礼物。点赞、投票、抽奖、连麦、关注、禁言、踢人都会进入同一套实时互动体系。设计这些功能时,要先区分消息类型和一致性要求。
互动消息分类
| 功能 | 特点 | 处理策略 |
|---|---|---|
| 点赞 | 高频、低价值 | 聚合计数、采样广播 |
| 投票 | 有结果一致性 | 服务端计票、定时广播结果 |
| 抽奖 | 公平性要求高 | 规则固定、过程审计 |
| 连麦 | 状态复杂 | 信令和媒体链路分离 |
| 禁言/踢人 | 管理动作 | 高优先级、强审计 |
不同互动不要都按弹幕处理。点赞如果每次都广播,会制造巨大流量;禁言如果延迟太高,会影响房间治理。
点赞与计数
点赞适合聚合:
客户端点赞 -> 本地立即反馈 -> 服务端聚合计数 -> 定期广播总数用户不需要看到每一次点赞事件,只需要看到热度变化。服务端可以按用户限速,按房间聚合,再周期性推送点赞总数。
投票与抽奖
投票和抽奖需要可验证:
- 同一用户是否只能投一次?
- 投票截止时间如何确定?
- 抽奖资格如何计算?
- 结果是否可审计?
这类功能不能只依赖客户端。服务端要保存规则、参与记录和结果,并提供复盘能力。
管理动作
管理员禁言、踢人、清屏属于高优先级控制消息:
- 需要校验管理员权限。
- 要尽快推送到相关用户和房间。
- 要记录操作人、原因和时间。
- 用户申诉时能追溯。
管理消息可以走独立高优先级通道,避免被普通弹幕挤压。
互动平台化
随着互动功能增加,系统应抽象统一事件:
room_event: { room_id, user_id, type, payload, priority, created_at }不同功能共享连接、分发、限流、审计和统计能力,但保留各自的业务处理逻辑。下一章会把这些能力整合成完整直播互动架构。