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: "routeError"The event name to clear; if omitted, listeners for every event are removed.
This emitter, for chaining.
Connects a CascadingRouter to a concrete media plane.
While attached, the bridge translates the router's room-assignment and cascade events into calls on an SfuMediaInterface: primary and cascade assignments become
addRoutecalls, detaches becomeremoveRoute, and dropped cascades becomeremoveCascadeRoute. Those media methods may be async; the bridge awaits them and emits SfuBridgeEvent.RouteError on failure instead of swallowing it. Detaching removes every route the bridge added so the media plane is left clean.