@samveys/broadcast

Meneruskan pesan SSE dan WebSocket antar instance

Versi
1.0.35 Nov 2026
Pasang
pnpm add @samveys/broadcast
Dokumentasi
README paket ini

Daftar ini dibaca dari versi 1.0.2; jalankan pnpm sync untuk memperbaruinya.

Import
import { broadcast, createBroadcaster, databaseBroadcast, memoryBroadcast } from '@samveys/broadcast'

Fungsi (4)

broadcast Fungsi

Relays messages between instances: `broadcast({ driver: ({ make }) => databaseBroadcast({ database: () => make('db') }) })`.

function broadcast(options: {

Diekspor dari packages/broadcast/src/broadcast.ts

createBroadcaster Fungsi

Tidak ada komentar dokumentasi.

function createBroadcaster(driver: BroadcastDriver): Broadcaster & {

Diekspor dari packages/broadcast/src/broadcast.ts

databaseBroadcast Fungsi

Relays through a table every instance polls: no extra infrastructure. Each instance starts at the current highest id, delivers newer rows in id order, and prunes old ones.

function databaseBroadcast(options: DatabaseBroadcastOptions): BroadcastDriver;

Diekspor dari packages/broadcast/src/broadcast.ts

memoryBroadcast Fungsi

In-process driver: one instance only (tests, single-node apps).

function memoryBroadcast(): BroadcastDriver;

Diekspor dari packages/broadcast/src/broadcast.ts

Interface (4)

BroadcastDriver Interface

A transport between instances.

interface BroadcastDriver {
    publish(channel: string, event: string, payload: unknown): Promise<void>;
    /** Starts delivering every message to `deliver`. */
    start(deliver: (message: BroadcastMessage) => void): Promise<void>;

Diekspor dari packages/broadcast/src/broadcast.ts

Broadcaster Interface

The `'broadcast'` binding.

interface Broadcaster {
    publish(channel: string, event: string, payload: unknown): Promise<void>;
    subscribe(channel: string, listener: BroadcastListener): () => void;

Diekspor dari packages/broadcast/src/broadcast.ts

BroadcastMessage Interface

One relayed message.

interface BroadcastMessage {
    /** Increasing per driver; usable as an SSE id for resume. */
    readonly id: number;
    readonly channel: string;
    readonly event: string;
    readonly payload: unknown;
}

Diekspor dari packages/broadcast/src/broadcast.ts

DatabaseBroadcastOptions Interface

Tidak ada komentar dokumentasi.

interface DatabaseBroadcastOptions {
    readonly database: () => Database;

Diekspor dari packages/broadcast/src/broadcast.ts

Tipe (1)

BroadcastListener Tipe

Tidak ada komentar dokumentasi.

type BroadcastListener = (message: BroadcastMessage) => void;

Diekspor dari packages/broadcast/src/broadcast.ts