Skip to main content

Client

You can use instances of this class to subscribe to video events.

Video Client

Setting up a Video Client

To create a Video client, you will first need to create a SignalWire Realtime-Client. After the SignalWire Client is created, you can access the Video client using the Video namespace.

Example

import { SignalWire } from "@signalwire/realtime-api";

const client = await SignalWire({ project: "ProjectID Here", token: "Token Here" })

const videoClient = client.video;

Methods

getRoomSessions

getRoomSessions(): Promise<{ roomSessions: RoomSession[] }>

Returns the currently active room sessions.

Returns

Promise<{ roomSessions: RoomSession[] }>

A promise that resolves to an array of RoomSession[] objects that can be used to access the room session's information and methods.

Example

In this example, we get the currently active room sessions and log their names. This example assumes that you have already active RoomSession.

import { SignalWire } from "@signalwire/realtime-api";

const client = await SignalWire({ project: "ProjectID Here", token: "Token Here" })

const videoClient = client.video;

const { roomSessions } = await videoClient.getRoomSessions();

console.log(roomSessions.forEach(room => console.log(room.name)));

getRoomSessionById

getRoomSessionById(id): Promise<{ roomSession: RoomSession }>

Returns a room session given its id. Only in-progress room sessions are currently returned.

Parameters

NameTypeDescription
idstringId of the room session.

Example

In this example, we use the getRoomSessions method to get the currently active room sessions and then use the getRoomSessionById method to get the first room session's information. This example assumes that you have already active RoomSession.

import { SignalWire } from "@signalwire/realtime-api";

const client = await SignalWire({ project: "ProjectID Here", token: "Token Here" })

const videoClient = client.video;

const { roomSessions } = await videoClient.getRoomSessions();

const room = await videoClient.getRoomSessionById(roomSessions[0].id);

console.log(room.roomSession.displayName)

Returns

Promise<{ roomSession: RoomSession }>

A promise that resolves to a RoomSession object that can be used to access the room session's information and methods.


listen

listen({ event: Callback }): Promise<RoomSession Events>

Listens to events on the video client. You can use this method to listen to any of the events listed in the Events section.

Parameters

NameTypeDescription
paramsobject
params.EVENTCallbackThe event to listen to. List of events can be found here.
Example event: (E.g: onRoomStarted)

Returns

Promise<RoomSession Events>

A promise that resolves to a RoomSession Events object that can be used to access the RoomSession's events.

Example

In this example, we use the listen method to listen to the onRoomStarted event and log the room session's name. This example assumes that you already have an active RoomSession.

import { SignalWire } from "@signalwire/realtime-api";

const client = await SignalWire({ project: "ProjectID Here", token: "Token Here" })

const videoClient = client.video;

await videoClient.listen({
onRoomStarted: async (room) => {
console.log("Room started", room.displayName);
},
onRoomEnded: async (room) => {
console.log("Room ended", room.displayName);
},
});

Events

onRoomEnded

client.video.listen({ onRoomEnded: Callback })

Emitted when a room session ends. Your event handler receives an object which is an instance of RoomSessionFullState.

Parameters

NameType
roomSessionRoomSession

onRoomStarted

client.video.listen( { onRoomStarted: Callback })

Emitted when a room session is started. Your event handler receives an object which is an instance of RoomSessionFullState.

Parameters

NameType
roomSessionRoomSession