Documentation / @zerotal/broadcasting / Broadcast
Class: Broadcast
Defined in: broadcasting/src/facades/Broadcast.ts:34
Broadcast facade — thin proxy to the active BroadcastManager.
Example
// In a controller
Broadcast.send(new PostUpdated(post));
Broadcast.to('posts', 'PostDeleted', { id: post.id });
// In tests
const fake = Broadcast.fake();
// ... trigger action ...
fake.assertBroadcast('PostUpdated', 'posts');
Broadcast.resetFake();
Constructors
Constructor
new Broadcast():
Broadcast
Returns
Broadcast
Methods
channel()
staticchannel(pattern,callback):void
Defined in: broadcasting/src/facades/Broadcast.ts:61
Register a channel authorization callback. Call this in routes/channels.ts.
Patterns use [param] placeholders (one channel segment each), passed to the callback
positionally after the authenticated user. Return a boolean for private channels, or a
member-data object for presence channels (false/null to deny).
Parameters
pattern
string
callback
Returns
void
Example
// routes/channels.ts
Broadcast.channel("orders.[orderId]", async (user: User, orderId: string) => {
return user.id === (await Order.findOrNew(orderId)).userId;
});
Broadcast.channel("chat.[roomId]", (user: User, roomId: string) => {
return user.canJoin(roomId) ? { id: user.id, name: user.name } : null;
});
channels()
staticchannels():object[]
Defined in: broadcasting/src/facades/Broadcast.ts:66
Registered channel patterns (for inspection / channel:list).
Returns
object[]
on()
staticon(channel):AnonymousBroadcast
Defined in: broadcasting/src/facades/Broadcast.ts:74
Begin an anonymous broadcast (no event class) on a public channel.
Parameters
channel
string
Returns
Example
Broadcast.on(`orders.${id}`).as("OrderPlaced").with(order).send();
private()
staticprivate(channel):AnonymousBroadcast
Defined in: broadcasting/src/facades/Broadcast.ts:79
Anonymous broadcast on a private channel (prefixes private-).
Parameters
channel
string
Returns
presence()
staticpresence(channel):AnonymousBroadcast
Defined in: broadcasting/src/facades/Broadcast.ts:84
Anonymous broadcast on a presence channel (prefixes presence-).
Parameters
channel
string
Returns
send()
staticsend(event,opts?):void
Defined in: broadcasting/src/facades/Broadcast.ts:92
Broadcast an event to all channels declared in broadcastOn().
opts.exceptSocketId skips one connection (used by broadcast(event).toOthers()).
Parameters
event
opts?
exceptSocketId?
string
Returns
void
to()
staticto(channel,eventName,data?,opts?):void
Defined in: broadcasting/src/facades/Broadcast.ts:101
Broadcast a raw event to a specific channel.
Parameters
channel
string
eventName
string
data?
unknown
opts?
exceptSocketId?
string
Returns
void
Example
Broadcast.to('posts', 'PostViewed', { id: 1, viewedAt: new Date() });
getMembers()
staticgetMembers(channel):PresenceMember[]
Defined in: broadcasting/src/facades/Broadcast.ts:114
Return all members currently subscribed to a presence channel. Only works with the real BroadcastManager (not the fake).
Parameters
channel
string
Returns
fake()
staticfake():BroadcastFake
Defined in: broadcasting/src/facades/Broadcast.ts:126
Replace the real manager with a BroadcastFake for the duration of the test.
Call Broadcast.resetFake() in afterEach to restore.
Returns
the fake, for assertions
resetFake()
staticresetFake():void
Defined in: broadcasting/src/facades/Broadcast.ts:132
Remove the fake and restore container-backed resolution.
Returns
void