共用看板
Go 寫入 D1,接著該主題的 Durable Object 透過 hx-ws 將片段推送到每個開啟的分頁。
看板的運作方式
- 每次變更都是一次表單提交,送往 Worker 上的 Go 處理常式。它會寫入 D1(Cloudflare 的 SQLite 資料庫,也是看板唯一的可信資料來源),並提高該主題的版本。
- 接著,處理常式會為每種語言各渲染一次完整的看板,交給該主題的 Durable Object,由它送到每個開啟的分頁。瀏覽器不做任何合併:每次推送都會取代整個看板。
- 分頁以 htmx 4 的 hx-ws 透過 WebSocket Hibernation 保持連線,因此一千個閒置的分頁在有變更之前幾乎不耗費任何資源。徽章會顯示目前有多少人在這裡。
- 每次推送都帶有產生時的版本。分頁會忽略比目前顯示的看板更舊的推送,因此在網路上交錯抵達的變更永遠不會倒退。
- 每個連線在 10 秒內最多可進行 60 次變更,每個主題最多可容納 1,000 個開啟的分頁。