Room
Defined in: client-sdk-js/src/Room.ts:184
A typed wrapper over Node’s EventEmitter.
Extends EventEmitter with declare overrides so that emit, on,
off, etc. are type-safe without introducing circular-reference issues
that arise when using typed-emitter directly in extends clauses
whose event maps reference the class itself.
Runtime behaviour is 100% EventEmitter; this class adds zero runtime
code.
Extends
Section titled “Extends”Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new Room(options?): Room;Defined in: client-sdk-js/src/Room.ts:233
Parameters
Section titled “Parameters”options?
Section titled “options?”Returns
Section titled “Returns”Room
Overrides
Section titled “Overrides”Properties
Section titled “Properties”addListener
Section titled “addListener”addListener: <E>(event, listener) => this;Defined in: client-sdk-js/src/utils/typedEmitter.ts:37
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
listener
Section titled “listener”E extends keyof RoomEvents ? RoomEvents[E] : (…args) => void
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”emit: <E>(event, ...args) => boolean;Defined in: client-sdk-js/src/utils/typedEmitter.ts:17
Type Parameters
Section titled “Type Parameters”E extends RoomEvent
Parameters
Section titled “Parameters”E
…Parameters<RoomEvents[E]>
Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”listenerCount
Section titled “listenerCount”listenerCount: (event) => number;Defined in: client-sdk-js/src/utils/typedEmitter.ts:57
Parameters
Section titled “Parameters”string | number
Returns
Section titled “Returns”number
Inherited from
Section titled “Inherited from”listeners
Section titled “listeners”listeners: <E>(event) => E extends keyof RoomEvents ? RoomEvents[E][] : ((...args) => void)[];Defined in: client-sdk-js/src/utils/typedEmitter.ts:49
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
Returns
Section titled “Returns”E extends keyof RoomEvents ? RoomEvents[E][] : ((…args) => void)[]
Inherited from
Section titled “Inherited from”off: <E>(event, listener) => this;Defined in: client-sdk-js/src/utils/typedEmitter.ts:32
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
listener
Section titled “listener”E extends keyof RoomEvents ? RoomEvents[E] : (…args) => void
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”on: <E>(event, listener) => this;Defined in: client-sdk-js/src/utils/typedEmitter.ts:22
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
listener
Section titled “listener”E extends keyof RoomEvents ? RoomEvents[E] : (…args) => void
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”once: <E>(event, listener) => this;Defined in: client-sdk-js/src/utils/typedEmitter.ts:27
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
listener
Section titled “listener”E extends keyof RoomEvents ? RoomEvents[E] : (…args) => void
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”rawListeners
Section titled “rawListeners”rawListeners: <E>(event) => E extends keyof RoomEvents ? RoomEvents[E][] : ((...args) => void)[];Defined in: client-sdk-js/src/utils/typedEmitter.ts:53
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
Returns
Section titled “Returns”E extends keyof RoomEvents ? RoomEvents[E][] : ((…args) => void)[]
Inherited from
Section titled “Inherited from”removeAllListeners
Section titled “removeAllListeners”removeAllListeners: (event?) => this;Defined in: client-sdk-js/src/utils/typedEmitter.ts:47
Parameters
Section titled “Parameters”event?
Section titled “event?”string | number
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”TypedEmitter.removeAllListeners
removeListener
Section titled “removeListener”removeListener: <E>(event, listener) => this;Defined in: client-sdk-js/src/utils/typedEmitter.ts:42
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
listener
Section titled “listener”E extends keyof RoomEvents ? RoomEvents[E] : (…args) => void
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”defaultMaxListeners
Section titled “defaultMaxListeners”static defaultMaxListeners: number;Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:5
Inherited from
Section titled “Inherited from”TypedEmitter.defaultMaxListeners
Accessors
Section titled “Accessors”activeSpeakers
Section titled “activeSpeakers”Get Signature
Section titled “Get Signature”get activeSpeakers(): Participant<TrackPublication>[];Defined in: client-sdk-js/src/Room.ts:363
List of participants currently speaking, ordered by audio level.
Returns
Section titled “Returns”Participant<TrackPublication>[]
canPlaybackAudio
Section titled “canPlaybackAudio”Get Signature
Section titled “Get Signature”get canPlaybackAudio(): boolean;Defined in: client-sdk-js/src/Room.ts:328
Whether audio can be played back automatically (i.e. no autoplay restriction).
Returns
Section titled “Returns”boolean
canPlaybackVideo
Section titled “canPlaybackVideo”Get Signature
Section titled “Get Signature”get canPlaybackVideo(): boolean;Defined in: client-sdk-js/src/Room.ts:333
Whether video can be played back automatically.
Returns
Section titled “Returns”boolean
groups
Section titled “groups”Get Signature
Section titled “Get Signature”get groups(): ReadonlyMap<string, GroupInfo>;Defined in: client-sdk-js/src/Room.ts:285
All active groups (breakout rooms) in this room.
Returns
Section titled “Returns”ReadonlyMap<string, GroupInfo>
isRecording
Section titled “isRecording”Get Signature
Section titled “Get Signature”get isRecording(): boolean;Defined in: client-sdk-js/src/Room.ts:338
Whether the room is currently being recorded.
Returns
Section titled “Returns”boolean
localParticipant
Section titled “localParticipant”Get Signature
Section titled “Get Signature”get localParticipant(): LocalParticipant;Defined in: client-sdk-js/src/Room.ts:269
Returns
Section titled “Returns”metadata
Section titled “metadata”Get Signature
Section titled “Get Signature”get metadata(): string | undefined;Defined in: client-sdk-js/src/Room.ts:343
Room-level metadata (set by the server).
Returns
Section titled “Returns”string | undefined
Get Signature
Section titled “Get Signature”get name(): string;Defined in: client-sdk-js/src/Room.ts:257
Returns
Section titled “Returns”string
numParticipants
Section titled “numParticipants”Get Signature
Section titled “Get Signature”get numParticipants(): number;Defined in: client-sdk-js/src/Room.ts:348
Number of participants currently in the room.
Returns
Section titled “Returns”number
numPublishers
Section titled “numPublishers”Get Signature
Section titled “Get Signature”get numPublishers(): number;Defined in: client-sdk-js/src/Room.ts:353
Number of participants that are actively publishing tracks.
Returns
Section titled “Returns”number
remoteParticipants
Section titled “remoteParticipants”Get Signature
Section titled “Get Signature”get remoteParticipants(): Map<string, RemoteParticipant>;Defined in: client-sdk-js/src/Room.ts:273
Returns
Section titled “Returns”Map<string, RemoteParticipant>
Get Signature
Section titled “Get Signature”get rtt(): number;Defined in: client-sdk-js/src/Room.ts:925
Returns
Section titled “Returns”number
serverInfo
Section titled “serverInfo”Get Signature
Section titled “Get Signature”get serverInfo(): ServerInfo | undefined;Defined in: client-sdk-js/src/Room.ts:265
Returns
Section titled “Returns”ServerInfo | undefined
sharedState
Section titled “sharedState”Get Signature
Section titled “Get Signature”get sharedState(): ReadonlyMap<string, string>;Defined in: client-sdk-js/src/Room.ts:290
Room-level shared state KV (for collaboration features like whiteboard, shared documents).
Returns
Section titled “Returns”ReadonlyMap<string, string>
Get Signature
Section titled “Get Signature”get sid(): string;Defined in: client-sdk-js/src/Room.ts:261
Returns
Section titled “Returns”string
Get Signature
Section titled “Get Signature”get state(): ConnectionState;Defined in: client-sdk-js/src/Room.ts:253
Returns
Section titled “Returns”Methods
Section titled “Methods”connect()
Section titled “connect()”connect( url, token?, options?): Promise<void>;Defined in: client-sdk-js/src/Room.ts:501
Parameters
Section titled “Parameters”string
token?
Section titled “token?”string
options?
Section titled “options?”Partial<InternalRoomConnectOptions>
Returns
Section titled “Returns”Promise<void>
createGroup()
Section titled “createGroup()”createGroup(name, permissions?): Promise<GroupInfo>;Defined in: client-sdk-js/src/Room.ts:395
Create a new group (breakout room) within this room.
Requires canManageGroups permission.
Parameters
Section titled “Parameters”string
permissions?
Section titled “permissions?”Returns
Section titled “Returns”Promise<GroupInfo>
deleteGroup()
Section titled “deleteGroup()”deleteGroup(groupId): Promise<void>;Defined in: client-sdk-js/src/Room.ts:411
Delete a group. All participants in the group are returned to the main room
and their permissions revert to room-level defaults.
Requires canManageGroups permission.
Parameters
Section titled “Parameters”groupId
Section titled “groupId”string
Returns
Section titled “Returns”Promise<void>
disconnect()
Section titled “disconnect()”disconnect(stopTracks?): Promise<void>;Defined in: client-sdk-js/src/Room.ts:653
Disconnect from the room.
Parameters
Section titled “Parameters”stopTracks?
Section titled “stopTracks?”boolean = true
Whether to stop local tracks after disconnecting.
Defaults to true.
Returns
Section titled “Returns”Promise<void>
eventNames()
Section titled “eventNames()”eventNames(): (string | number)[];Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:7
Returns
Section titled “Returns”(string | number)[]
Inherited from
Section titled “Inherited from”getActiveDevice()
Section titled “getActiveDevice()”getActiveDevice(kind): string | undefined;Defined in: client-sdk-js/src/Room.ts:1012
Returns the device ID currently active for a given kind, if known.
Parameters
Section titled “Parameters”MediaDeviceKind
Returns
Section titled “Returns”string | undefined
getGroupParticipants()
Section titled “getGroupParticipants()”getGroupParticipants(groupId): Participant<TrackPublication>[];Defined in: client-sdk-js/src/Room.ts:298
Get all participants currently in the specified group. Includes the local participant if they are in the group.
Parameters
Section titled “Parameters”groupId
Section titled “groupId”string
Returns
Section titled “Returns”Participant<TrackPublication>[]
getMaxListeners()
Section titled “getMaxListeners()”getMaxListeners(): number;Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:9
Returns
Section titled “Returns”number
Inherited from
Section titled “Inherited from”getParticipantByIdentity()
Section titled “getParticipantByIdentity()”getParticipantByIdentity(identity): RemoteParticipant | undefined;Defined in: client-sdk-js/src/Room.ts:376
Look up a remote participant by their identity.
Parameters
Section titled “Parameters”identity
Section titled “identity”string
Returns
Section titled “Returns”RemoteParticipant | undefined
getParticipants()
Section titled “getParticipants()”getParticipants(): Participant<TrackPublication>[];Defined in: client-sdk-js/src/Room.ts:314
Get all participants.
Returns
Section titled “Returns”Participant<TrackPublication>[]
getTransportStats()
Section titled “getTransportStats()”getTransportStats(): Promise<{ recv?: RTCStatsReport; send?: RTCStatsReport;}>;Defined in: client-sdk-js/src/Room.ts:280
Returns WebRTC stats for the underlying send and receive transports.
Returns
Section titled “Returns”Promise<{
recv?: RTCStatsReport;
send?: RTCStatsReport;
}>
listGroups()
Section titled “listGroups()”listGroups(): Promise<GroupInfo[]>;Defined in: client-sdk-js/src/Room.ts:418
List all active groups in this room.
Returns
Section titled “Returns”Promise<GroupInfo[]>
pinParticipant()
Section titled “pinParticipant()”pinParticipant(participantSid): Promise<void>;Defined in: client-sdk-js/src/Room.ts:430
Pin a remote participant so their media tracks are always received, regardless of active speaker rotation. Pinned participants occupy lastN slots with highest priority.
Parameters
Section titled “Parameters”participantSid
Section titled “participantSid”string
Returns
Section titled “Returns”Promise<void>
prependListener()
Section titled “prependListener()”prependListener(type, listener): this;Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:14
Parameters
Section titled “Parameters”string | number
listener
Section titled “listener”Listener
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”prependOnceListener()
Section titled “prependOnceListener()”prependOnceListener(type, listener): this;Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:15
Parameters
Section titled “Parameters”string | number
listener
Section titled “listener”Listener
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”TypedEmitter.prependOnceListener
registerByteStreamHandler()
Section titled “registerByteStreamHandler()”registerByteStreamHandler(topic, handler): void;Defined in: client-sdk-js/src/Room.ts:1062
Register a handler for incoming byte streams on a specific topic.
Parameters
Section titled “Parameters”string
handler
Section titled “handler”Returns
Section titled “Returns”void
registerRpcMethod()
Section titled “registerRpcMethod()”registerRpcMethod(method, handler): void;Defined in: client-sdk-js/src/Room.ts:1026
Register an RPC method handler. When a remote participant calls
performRpc with the given method name, the handler is invoked.
Parameters
Section titled “Parameters”method
Section titled “method”string
Method name to handle.
handler
Section titled “handler”(data) => Promise<string>
Async function that receives invocation data and returns a string payload.
Returns
Section titled “Returns”void
registerTextStreamHandler()
Section titled “registerTextStreamHandler()”registerTextStreamHandler(topic, handler): void;Defined in: client-sdk-js/src/Room.ts:1048
Register a handler for incoming text streams on a specific topic.
Parameters
Section titled “Parameters”string
handler
Section titled “handler”Returns
Section titled “Returns”void
setMaxListeners()
Section titled “setMaxListeners()”setMaxListeners(n): this;Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:8
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”startAudio()
Section titled “startAudio()”startAudio(): Promise<void>;Defined in: client-sdk-js/src/Room.ts:958
Attempt to start audio playback on all remote audio tracks.
Should be called from a user interaction handler when
canPlaybackAudio is false.
Returns
Section titled “Returns”Promise<void>
startVideo()
Section titled “startVideo()”startVideo(): Promise<void>;Defined in: client-sdk-js/src/Room.ts:986
Attempt to start video playback on all remote video tracks.
Should be called from a user interaction handler when
canPlaybackVideo is false.
Returns
Section titled “Returns”Promise<void>
switchActiveDevice()
Section titled “switchActiveDevice()”switchActiveDevice( kind, deviceId, exact?): Promise<void>;Defined in: client-sdk-js/src/Room.ts:463
Switch the active device for a given kind across all published tracks.
Parameters
Section titled “Parameters”MediaDeviceKind
videoinput, audioinput, or audiooutput.
deviceId
Section titled “deviceId”string
The device ID to switch to.
exact?
Section titled “exact?”boolean = true
If true, sets the deviceId constraint to exact.
Defaults to true.
Returns
Section titled “Returns”Promise<void>
unpinParticipant()
Section titled “unpinParticipant()”unpinParticipant(participantSid): Promise<void>;Defined in: client-sdk-js/src/Room.ts:438
Unpin a previously pinned participant. Their media subscription will then be subject to active speaker rotation under lastN rules.
Parameters
Section titled “Parameters”participantSid
Section titled “participantSid”string
Returns
Section titled “Returns”Promise<void>
unregisterByteStreamHandler()
Section titled “unregisterByteStreamHandler()”unregisterByteStreamHandler(topic): void;Defined in: client-sdk-js/src/Room.ts:1069
Unregister a previously registered byte stream handler.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”void
unregisterRpcMethod()
Section titled “unregisterRpcMethod()”unregisterRpcMethod(method): void;Defined in: client-sdk-js/src/Room.ts:1038
Remove a previously registered RPC method handler.
Parameters
Section titled “Parameters”method
Section titled “method”string
Returns
Section titled “Returns”void
unregisterTextStreamHandler()
Section titled “unregisterTextStreamHandler()”unregisterTextStreamHandler(topic): void;Defined in: client-sdk-js/src/Room.ts:1055
Unregister a previously registered text stream handler.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”void
getLocalDevices()
Section titled “getLocalDevices()”static getLocalDevices(kind?): Promise<MediaDeviceInfo[]>;Defined in: client-sdk-js/src/Room.ts:448
Enumerate available media input/output devices.
Parameters
Section titled “Parameters”MediaDeviceKind
Filter by device kind. If omitted, all devices are returned.
Returns
Section titled “Returns”Promise<MediaDeviceInfo[]>
listenerCount()
Section titled “listenerCount()”static listenerCount(emitter, type): number;Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:4
Parameters
Section titled “Parameters”emitter
Section titled “emitter”EventEmitter
string | number
Returns
Section titled “Returns”number