Quadro partilhado

O Go escreve no D1 e, depois, o Durable Object do tópico envia o fragmento para cada separador aberto via hx-ws.

Tópicolobby
Abra esta página noutro separador e altere algo.
…online
71versão 226
hu

hello man

解决

Ggh

Vnn

Como funciona o quadro

  1. Cada alteração é o envio de um formulário para um handler em Go no Worker. Este escreve no D1, a base de dados SQLite da Cloudflare e a única fonte de verdade do quadro, e incrementa a versão do tópico.
  2. Depois, o handler renderiza o quadro inteiro uma vez por idioma e entrega-o ao Durable Object do tópico, que o envia para cada separador aberto. Nada é combinado no navegador: cada push substitui o quadro.
  3. Os separadores mantêm-se ligados com o hx-ws do htmx 4 sobre WebSocket Hibernation, pelo que mil separadores inativos quase não custam nada até que algo mude. O indicador conta quem está aqui.
  4. Cada push leva a versão a partir da qual foi feito. Um separador ignora um push mais antigo do que o quadro que mostra, por isso as alterações que se cruzam na rede nunca andam para trás.
  5. Cada ligação pode fazer 60 alterações em 10 segundos e um tópico aceita até 1000 separadores abertos.