SHARED TEXT ROOM

共享文本房间 使用指南

一个轻量的实时协作空间:创建一个房间,把房间码发给同伴,所有人即可在同一个文本框里实时编辑、即时互见。

版本 v1.1 · 基于 Cloudflare Pages + D1 + WebSocket 实时推送

1这是什么

共享文本房间(ChatRoom)是一个无需注册账号的协作工具。每个房间由一段 4–32 位的「数字 + 小写字母」房间码唯一标识,房间内只有一份共享文本——任何进入房间的人都能直接编辑,一方输入,其他人页面会在亚秒级自动刷新看到。

实时同步

基于 WebSocket + Durable Objects,改动即时广播给房间内所有人。

🔓

无账号门槛

不需要注册登录,凭房间码即可进入,公开房间直接可进。

🔒

私有房间

设为私有后需口令进入,不出现在大厅,适合内部讨论。

📋

公告板

房主可维护一段公告,房间内所有人只读可见。

适用场景临时会议记录、多人协同起草、共享待办清单、内部讨论板、把一段长文本/链接临时分享给同伴等。

2创建房间

在大厅首页点击「创建房间」,填写以下信息后提交:

字段说明规则
房间码房间的唯一地址,也是进入凭证(公开房间)^[a-z0-9]{4,32}$,若已存在会提示「房间已存在,可直接进入」
是否公开公开房间出现在大厅列表;私有房间需口令开关,默认公开
房间口令仅私有房间需要,进入时校验设私有时必填,建议 4–64 位
公告(可选)房主维护的只读提示≤ 2 KB

创建成功后,务必记下两件东西

一次性提示recovery_key 明文只在创建成功的弹窗里出现一次。关闭弹窗后无法再次查看,请务必提前复制保存(如记在密码管理器)。

3大厅浏览与进入

大厅(首页)列出所有公开房间,每个列表项展示:房间码、公告摘要、最近更新时间。你可以:

提示私有房间不会出现在大厅列表。知道房间码的人尝试进入时,会弹出口令框要求输入正确口令。

4实时协作编辑

进入房间后,中部就是共享文本编辑区。你可以像用记事本一样直接输入,所有改动会:

  1. 本地乐观更新:你输入的内容立即显示,无需等待。
  2. 防抖提交:停止输入约 800ms 后自动 PUT /content 保存。
  3. 实时广播:保存成功后,房间经 WebSocket 广播给所有人,他人页面自动刷新看到最新内容。
  4. 断线重连:网络抖动断开后会在约 2 秒自动重连,无需手动刷新。

输入体验优化

内容上限单房间共享文本上限约 512 KB(约 50 万汉字)。超过会拒收并提示超限。
多人同时编辑当前为「后写覆盖」模式,不做逐字合并。若你和他人几乎同时大量修改,以最后一次保存为准,本地未提交的草稿会被保留提示,刷新后按服务端内容覆盖。

5私有房间与口令

创建时把开关设为「私有」并填写口令,房间即变为私有:

口令即门槛私有房间靠「房间码 + 口令」双重保护,属轻量防护,并非强加密。请勿用于高敏感机密;如需更强保护,可后续搭配邀请链接或 Cloudflare Access。

6房主权限

当本机 localStorage 中存在该房间的 owner_token 时,房间页会显示房主控制区。你可:

操作说明
切换公开 / 私有开关即可。把公开房间转为私有时,会强制弹窗要求先设置房间口令。
编辑公告修改房间顶部公告板内容,所有人只读可见。
销毁房间删除房间及全部数据,不可逆,需二次确认。

如果本机丢失了房主身份

清除浏览器缓存、换设备或 owner_token 丢失后,房主控制区不再显示。此时可用创建时备份的 recovery_key 找回(见下一节)。

认领入口房间页内置「认领权限」入口,输入 recovery_key 即可重新获得房主控制区,无需离开当前页面。

7找回房主身份

owner_token 丢失,但你还留有创建时的 recovery_key

  1. 在房间页点击「认领权限」入口(或进入找回页)。
  2. 输入房间码recovery_key
  3. 调用找回接口,服务端校验通过后会重新签发一个新的 owner_token 并自动存回本机。
  4. 旧 owner_token 立即失效;你重新拥有完整房主权限。
recovery_key 是关键没有 recovery_key 且本机 owner_token 已丢失,将无法找回房主身份(房间内容仍在,但无法再管理/销毁)。这是「无账号体系」的固有取舍,请务必备份。

8安全与备份建议

核心提醒房主身份 = owner_token(本机)或 recovery_key(备份)。两者皆失 = 永久失去房主管理权。创建房间时请先复制 recovery_key 再关闭弹窗。

9常见问题

Q:房间码可以自定义吗?

可以。房间码由你指定,4–32 位「小写字母 + 数字」,如 team9note2026。若已被占用,会提示直接进入。

Q:为什么我输入的字会先消失再回来?

早期版本的轮询刷新可能造成回声。现已改用 WebSocket 实时推送 + 时间戳 LWW 策略,输入不会丢失;若仍偶发,通常是本地有未提交草稿被服务端内容短暂覆盖,刷新后即一致。

Q:私有房间的口令忘了怎么办?

口令本身没有找回机制(服务端只存哈希)。若你是房主,可用 recovery_key 认领权限后,在房主控制区把房间转回公开,再重新设置口令。

Q:文本有大小限制吗?

共享文本上限约 512 KB(约 50 万汉字),公告 ≤ 2 KB。超限会被拒绝并提示。

Q:多人同时编辑会冲突吗?

采用「后写覆盖」策略,不做逐字合并。适合协作起草/记录,不适合像文档那样精细的并行排版。如需光标级协同,需引入 Yjs 等专业方案。

Q:关闭页面后房间还在吗?

在。房间与内容持久化在 D1 数据库,关掉浏览器后凭房间码仍可重新进入。