Class: GlobalAndRoomCallbackDispatcher\<TEvent, TCallback\>
Gala Launchpad SDK 9.0.0-rc.5 / index / GlobalAndRoomCallbackDispatcher
Class: GlobalAndRoomCallbackDispatcher<TEvent, TCallback>
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:318
Global and Room Callback Dispatcher
Dispatches callbacks to both global and room-specific listeners in the correct order. Global callbacks execute first, then room-specific callbacks.
Used in StreamWebSocketService to ensure consistent callback ordering across different event types.
Features:
- Global-first execution order
- Isolated error handling per listener
- Type-safe callback dispatch
- Logging for debugging
Example
// Test case: Global and room-specific callbacks
interface MyEvent { tokenName: string; value: number }
type MyCallback = (event: MyEvent) => void;
const dispatcher = new GlobalAndRoomCallbackDispatcher<MyEvent, MyCallback>();
const calls: string[] = [];
// Register global callback
dispatcher.registerGlobalCallback((event) => {
calls.push(`global:${event.tokenName}`);
});
// Register room-specific callbacks
dispatcher.registerRoomCallback('token:anime', (event) => {
calls.push(`room:anime:${event.value}`);
});
dispatcher.registerRoomCallback('token:gala', (event) => {
calls.push(`room:gala:${event.value}`);
});
// Dispatch event
const event: MyEvent = { tokenName: 'anime', value: 42 };
dispatcher.dispatch('token:anime', event);
// Global callback should execute first
console.assert(calls[0] === 'global:anime');
console.assert(calls[1] === 'room:anime:42');
// Unrelated room callback not called
console.assert(!calls.some(c => c.startsWith('room:gala')));
Since
6.6.0
Type Parameters
TEvent
TEvent
Event type being dispatched
TCallback
TCallback extends (event) => void
Callback function type
Constructors
Constructor
new GlobalAndRoomCallbackDispatcher<
TEvent,TCallback>(logger?):GlobalAndRoomCallbackDispatcher<TEvent,TCallback>
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:322
Parameters
logger?
Logger
Returns
GlobalAndRoomCallbackDispatcher<TEvent, TCallback>
Methods
clear()
clear():
void
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:349
Clear all callbacks
Returns
void
clearRoom()
clearRoom(
roomId):void
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:355
Remove all callbacks for a specific room
Parameters
roomId
string
Room identifier
Returns
void
dispatch()
dispatch(
roomId,event):void
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:345
Dispatch an event to global and room-specific callbacks
Calls global callbacks first, then room-specific callbacks. Errors in one callback don't prevent others from executing.
Parameters
roomId
string
Room identifier for this event
event
TEvent
Event data to dispatch
Returns
void
registerGlobalCallback()
registerGlobalCallback(
callback):void
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:328
Register a global callback
Parameters
callback
TCallback
Function to call for all events
Returns
void
registerRoomCallback()
registerRoomCallback(
roomId,callback):void
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:335
Register a room-specific callback
Parameters
roomId
string
Room identifier (e.g., 'token:anime')
callback
TCallback
Function to call for events in this room
Returns
void