消息模型

三个核心对象

第一版弹幕系统可以从三个核心对象开始:

用户 -> 发送弹幕 -> 房间 -> 推送给在线观众
  • 房间:直播间的容器,决定消息分发给谁。
  • 用户:发送者,带身份与权限。
  • 消息:唯一 ID、内容、类型与状态。

消息模型

一条弹幕消息至少包含:

字段含义
message_id消息唯一 ID
room_id直播间
user_id发送者
content文本内容
type普通弹幕、系统消息、礼物、管理员消息
status待审核、可见、拦截、删除
created_at发送时间

为什么不要只存文本

只存 content 是不够的:

  • type 决定走哪条链路(实时分发 / 高优通道 / 聚合)。
  • status 决定是否可见、是否可回放。
  • message_id 是幂等和审计的键。

消息类型和状态会影响后续的审核、分发、落库和回放,所以从第一版就要建模完整。

房间与用户

  • 房间:room_id + 直播状态 + 房间级配置(限流 / 审核策略)。
  • 用户:user_id + 是否登录 / 是否被禁言 + 发送权限。

这两个对象是消息的上下文:同一条消息放在不同房间、由不同用户发出,处理策略可能完全不同。

一句话

消息模型是弹幕系统的数据基础。先定义清楚「一条消息是什么」,后面所有的分发、治理、落库才有依托。

下一节看一条弹幕从发出到被看到的基础流程。

发现内容有问题?

告诉我们哪里需要改进。