Transportes
Para la explicación conceptual de cuándo se usa cada transporte, ver la guía Transportes. Esta página documenta su forma exacta.
ITransport
Sección titulada «ITransport»interface ITransport { send(msg: TabusMessage): void; onMessage(listener: (msg: TabusMessage) => void): void; destroy(): void;}| Miembro | Descripción |
|---|---|
send(msg) |
Envía un TabusMessage a través del transporte. |
onMessage(listener) |
Registra un listener que se invoca con cada TabusMessage recibido. |
destroy() |
Libera los recursos del transporte (cierra el canal subyacente). |
BroadcastTransport
Sección titulada «BroadcastTransport»Envoltorio delgado sobre la API nativa BroadcastChannel.
| Método | Implementación |
|---|---|
send(msg) |
bc.postMessage(msg) |
onMessage(listener) |
bc.addEventListener("message", ...) |
destroy() |
bc.close() |
Es el transporte usado por defecto en cualquier navegador con soporte de BroadcastChannel, y comunica pestañas, ventanas y workers reales del mismo origen.
MemoryTransport
Sección titulada «MemoryTransport»Fallback en memoria, activo cuando BroadcastChannel no existe (Node, SSR, navegadores muy antiguos).
- Mantiene un registro a nivel de módulo:
Map<string, Set<listener>>, compartido por todas las instancias deMemoryTransportdentro del mismo proceso. - Solo funciona dentro del mismo proceso/pestaña — no cruza pestañas reales, porque sin
BroadcastChannelno existe tal concepto. - A diferencia de
BroadcastTransport, el propio listener del emisor sí es invocado porsend(); esTabusquien filtra portabId. - Emite un
console.warnuna sola vez por nombre de canal, avisando que se activó el fallback.
__resetMemoryBus()
Sección titulada «__resetMemoryBus()»function __resetMemoryBus(): voidLimpia el registro interno a nivel de módulo de MemoryTransport (los listeners y el registro de canales ya avisados).
Siguiente paso
Sección titulada «Siguiente paso»Exports resume qué de todo esto se exporta públicamente desde tabus-js.
