Skip to content

RFC: 自习室(轻社交) #6

Description

@gxxk-dev

RFC: 自习室(轻社交)

三档渐进式实现,从无声陪伴到房间互动逐步升级。

关联:#5(待办系统)— 任务完成事件可广播到自习室

现有基础设施

  • OnlineCounter Durable Object:WebSocket 生命周期、心跳保活(30s ping)、指数退避重连(最多 10 次)
  • StatusPill 组件:展示在线人数 + 连接状态
  • workerchat-with-E2EE:可迁移的聊天能力(房间管理、邀请链接、角色权限、WebSocket 消息协议)

A档:全局广场

基于现有 OnlineCounter DO 扩展,不新建 DO。

  • 扩展 WebSocket 消息类型,广播系统事件:
    • 有人开始专注
    • 有人完成了一个番茄钟
    • 有人完成了任务 ✓
  • 预设快捷短语("加油"、"冲冲冲"、"休息一下"等)
  • 前端展示:弹幕 / 轻量 feed 形式
  • 频率限制(防刷屏)

不支持自定义消息,保持零社交压力。

B档:私人房间

新建 StudyRoom Durable Object,按房间隔离。

  • 创建 / 加入房间
  • 邀请链接机制(从 workerchat 迁移,简化)
  • 房间内成员专注状态实时同步(谁在专注、谁在休息)
  • 房间共同目标("今天一起完成 N 个番茄钟",共享进度条)
  • 匿名 / 昵称可选
  • 分享房间链接

角色体系(从 workerchat 简化)

角色 能力
Creator(房主) 踢人、管理邀请链接、设置房间目标
User(已登录) 查看成员、参与专注
Guest(未登录/链接加入) 查看状态

去掉 Admin 层级,自习室场景不需要。

C档:房间内互动

在 B 档基础上增加交流能力,聊天功能从 workerchat 迁移改造。

  • 房间内聊天(明文,从 workerchat 迁移核心消息协议)
  • 快捷反应(加油 / 辛苦了 / Miku 贴纸)
  • 房间排行榜(今日专注时长)
  • 消息回复(复用 workerchat 的 ReplyInfo 结构)

架构

OnlineCounter (现有 DO,扩展)
└── A档:全局广场
    ├── 系统事件广播
    └── 快捷短语

StudyRoom (新 DO,从 workerchat 迁移改造)
├── B档:私人房间
│   ├── 邀请链接 / 房间管理
│   ├── 成员专注状态同步
│   └── 房间目标
└── C档:房间互动
    ├── 聊天
    ├── 快捷反应 / Miku 贴纸
    └── 排行榜

实现优先级

A → B → C,逐步交付。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions