共享看板

Go 写入 D1,然后该主题的 Durable Object 通过 hx-ws 将片段推送到每个打开的标签页。

主题lobby
在另一个标签页中打开此页面,然后改点什么。
…人在线
71版本 226
hu

hello man

解决

Ggh

Vnn

看板的工作原理

  1. 每次更改都是一次表单提交,发往 Worker 上的 Go 处理程序。它写入 D1(Cloudflare 的 SQLite 数据库,也是看板唯一的可信数据源),并提升该主题的版本号。
  2. 随后,处理程序按每种语言各渲染一次完整的看板,并交给该主题的 Durable Object,由它发送到每个打开的标签页。浏览器中不做任何合并:每次推送都会替换整个看板。
  3. 标签页通过 htmx 4 的 hx-ws 借助 WebSocket Hibernation 保持连接,因此在有变化之前,一千个空闲的标签页几乎不产生任何开销。徽标显示当前在场的人数。
  4. 每次推送都带有它所基于的版本号。标签页会忽略比当前显示的看板更旧的推送,因此在网络中交错的更改永远不会倒退。
  5. 每个连接在 10 秒内最多可进行 60 次更改,每个主题最多可容纳 1,000 个打开的标签页。