The currently joined Room, or null when not in a room. Lets you
reach the room without holding onto the RTCForgeClient.joinRoom
return value.
Synchronously invokes every listener registered for event, in registration order.
true if at least one listener was invoked, false if there were none.
The listener list is snapshotted before dispatch, so mutations made by handlers take effect only on subsequent emissions. Listeners are isolated: if one throws, the remaining listeners still run and the error is surfaced via console.error rather than swallowed silently (consistent with LocalMessageBus).
Returns the number of listeners currently registered for event.
The event name to count listeners for.
The count of registered listeners (0 if none).
Registers a listener that is invoked at most once: it is removed automatically before
being called the first time event is emitted.
This emitter, for chaining.
Remove a pending one-time listener by passing the same function reference to off.
Removes listeners for a single event, or for all events.
Optionalevent: keyof ClientEventsThe event name to clear; if omitted, listeners for every event are removed.
This emitter, for chaining.
Top-level SDK entry point: connects to a signaling server and joins rooms.
Remarks
RTCForgeClientowns the Transport lifecycle and a state machine (ConnectionState) governing connect, reconnect, and disconnect, emitting ClientEvents at each transition. joinRoom runs the JoinHandshake and hands back a Room; the joined room is also reachable via room. Transport creation is pluggable through thetransportFactoryoption, defaulting to WebSocketTransport.