karvan: refrescar la sala sin JavaScript

Sin JS el chat ya funcionaba —el formulario publica y el mensaje sale en el HTML—
pero no llegaban los mensajes de los demas hasta recargar a mano.

La pagina de sala anade <noscript><meta http-equiv=refresh content=10>: solo actua
cuando no hay JavaScript, asi que con JS el data-channel sigue mandando y no hay
recargas encima del chat en vivo. Es el mismo recurso que usa upstream en
indexing_view.

Comprobado ademas sobre el modelo, con TTL acortado: la sala se autodestruye al
vencer y no deja mensajes, el anillo respeta el tope de 250 conservando los mas
recientes, se rechaza la senalizacion de mas de 16 KiB, el tope de 100 salas se
aplica, y postear en una sala inexistente devuelve null en vez de reventar.

El identificador de sala son 72 bits de entropia: no es adivinable, y es la unica
credencial de acceso — quien tiene el enlace, entra. Es el modelo previsto, pero
conviene tenerlo escrito.
This commit is contained in:
SITO 2026-08-18 23:04:41 +02:00
parent ad2d5c8f62
commit ace175cca3

View file

@ -115,4 +115,7 @@ exports.karvanRoomView = (room, messages, params = {}) =>
: ""
),
script({ src: "/js/karvan.js", defer: "defer" })
);
// sin JavaScript no hay data-channel ni sondeo, asi que la sala se refresca sola.
// Va en <noscript> para que con JS no recargue encima del chat en vivo.
// Mismo recurso que usa upstream en indexing_view.
).replace('</head>', '<noscript><meta http-equiv="refresh" content="10"></noscript></head>');