Consideraciones y límites
Antes de integrar tabus-js en tu app, ten presentes estos comportamientos por diseño:
const bus = new Tabus<{ data: number }>("app");
const handleData = (value: number) => console.log(value);
bus.on("data", handleData);
function send(value: number) { bus.emit("data", value); handleData(value); // procesamiento local explícito}-
Después de
destroy(),on()yemit()son no-ops seguros. No lanzan errores ni tienen efecto — simplemente no hacen nada. No hace falta comprobar manualmente si una instancia sigue viva antes de usarla. -
Cero dependencias en tiempo de ejecución. tabus-js solo usa APIs nativas del entorno:
BroadcastChannel,crypto.randomUUIDysetTimeout. No hay nada que actualizar por dependencias transitivas. -
El orden de entrega no está garantizado entre pestañas con carga distinta. Si dos pestañas emiten casi al mismo tiempo, el orden en que cada peer los recibe depende del scheduler del navegador, no de un reloj global.
-
tabIdes efímero. Se genera por instancia (concrypto.randomUUID()o un fallback manual) y no persiste entre recargas de página — no lo uses como identificador estable de usuario o sesión.
Siguiente paso
Sección titulada «Siguiente paso»- Eventos de ciclo de vida explica en detalle el diferido de
tab:joiny la protección dedestroy(). - La referencia de la clase Tabus documenta la firma exacta de cada método.
