Skip to main content
Version: 0.28.0

Class: FishjamClient

Defined in: js-server-sdk/src/client.ts:25

Client class that allows to manage Rooms and Peers for a Fishjam App. It requires the Fishjam ID and management token that can be retrieved from the Fishjam Dashboard.

Constructors

Constructor

new FishjamClient(config): FishjamClient

Defined in: js-server-sdk/src/client.ts:49

Create new instance of Fishjam Client.

Does not verify credentials against the backend — use FishjamClient.create or call FishjamClient.checkCredentials afterwards for that.

Example usage:

const fishjamClient = new FishjamClient({ fishjamId: fastify.config.FISHJAM_ID, managementToken: fastify.config.FISHJAM_MANAGEMENT_TOKEN, });

Parameters

ParameterType
configFishjamConfig

Returns

FishjamClient

Methods

checkCredentials()

checkCredentials(): Promise<void>

Defined in: js-server-sdk/src/client.ts:99

Verifies the configured credentials by making a single lightweight call to the Fishjam backend. Resolves on success, throws InvalidFishjamCredentialsException on 401/404 from the backend, otherwise rethrows the standard mapped exception.

Returns

Promise<void>


create()

static create(config): Promise<FishjamClient>

Defined in: js-server-sdk/src/client.ts:87

Async factory: constructs a client and verifies credentials against the backend.

Throws InvalidFishjamCredentialsException when the fishjamId / managementToken pair is rejected by the backend.

Example:

const client = await FishjamClient.create({ fishjamId: process.env.FISHJAM_ID!, managementToken: process.env.FISHJAM_MANAGEMENT_TOKEN!, });

Parameters

ParameterType
configFishjamConfig

Returns

Promise<FishjamClient>


createAgent()

createAgent(roomId, options, callbacks?): Promise<{ agent: FishjamAgent; peer: Peer; }>

Defined in: js-server-sdk/src/client.ts:189

Create a new agent assigned to a room.

Parameters

ParameterType
roomIdRoomId
optionsPeerOptionsAgent
callbacks?AgentCallbacks

Returns

Promise<{ agent: FishjamAgent; peer: Peer; }>


createLivestreamStreamerToken()

createLivestreamStreamerToken(roomId): Promise<StreamerToken>

Defined in: js-server-sdk/src/client.ts:310

Creates a livestream streamer token for the given room.

Parameters

ParameterType
roomIdRoomId

Returns

Promise<StreamerToken>

a livestream streamer token


createLivestreamViewerToken()

createLivestreamViewerToken(roomId): Promise<ViewerToken>

Defined in: js-server-sdk/src/client.ts:297

Creates a livestream viewer token for the given room.

Parameters

ParameterType
roomIdRoomId

Returns

Promise<ViewerToken>

a livestream viewer token


createMoqToken()

createMoqToken(config?): Promise<MoqToken>

Defined in: js-server-sdk/src/client.ts:323

Creates a MoQ token.

Parameters

ParameterType
config?MoqTokenConfig

Returns

Promise<MoqToken>

a MoQ token


createPeer()

createPeer(roomId, options): Promise<{ peer: Peer; peerToken: string; }>

Defined in: js-server-sdk/src/client.ts:169

Create a new peer assigned to a room.

Parameters

ParameterType
roomIdRoomId
optionsPeerOptionsWebRTC

Returns

Promise<{ peer: Peer; peerToken: string; }>


createRoom()

createRoom(config): Promise<Room>

Defined in: js-server-sdk/src/client.ts:127

Create a new room. All peers connected to the same room will be able to send/receive streams to each other.

Parameters

ParameterType
configRoomConfig

Returns

Promise<Room>


createVapiAgent()

createVapiAgent(roomId, options): Promise<{ peer: Peer; }>

Defined in: js-server-sdk/src/client.ts:215

Create a new VAPI agent assigned to a room.

Parameters

ParameterType
roomIdRoomId
optionsPeerOptionsVapi

Returns

Promise<{ peer: Peer; }>


deletePeer()

deletePeer(roomId, peerId): Promise<void>

Defined in: js-server-sdk/src/client.ts:247

Delete a peer - this will also disconnect the peer from the room.

Parameters

ParameterType
roomIdRoomId
peerIdPeerId

Returns

Promise<void>


deleteRoom()

deleteRoom(roomId): Promise<void>

Defined in: js-server-sdk/src/client.ts:146

Delete an existing room. All peers connected to this room will be disconnected and removed.

Parameters

ParameterType
roomIdRoomId

Returns

Promise<void>


getAllRooms()

getAllRooms(): Promise<Room[]>

Defined in: js-server-sdk/src/client.ts:157

Get a list of all existing rooms.

Returns

Promise<Room[]>


getRoom()

getRoom(roomId): Promise<Room>

Defined in: js-server-sdk/src/client.ts:235

Get details about a given room.

Parameters

ParameterType
roomIdRoomId

Returns

Promise<Room>


refreshPeerToken()

refreshPeerToken(roomId, peerId): Promise<string>

Defined in: js-server-sdk/src/client.ts:284

Refresh the peer token for an already existing peer. If an already created peer has not been connected to the room for more than 24 hours, the token will become invalid. This method can be used to generate a new peer token for the existing peer.

Parameters

ParameterType
roomIdRoomId
peerIdPeerId

Returns

Promise<string>

refreshed peer token


subscribePeer()

subscribePeer(roomId, subscriberPeerId, publisherPeerId): Promise<void>

Defined in: js-server-sdk/src/client.ts:259

Subscribe a peer to another peer - this will make all tracks from the publisher available to the subscriber. Using this function only makes sense if subscribeMode is set to manual

Parameters

ParameterType
roomIdRoomId
subscriberPeerIdPeerId
publisherPeerIdPeerId

Returns

Promise<void>


subscribeTracks()

subscribeTracks(roomId, subscriberPeerId, tracks): Promise<void>

Defined in: js-server-sdk/src/client.ts:271

Subscribe a peer to specific tracks from another peer - this will make only the specified tracks from the publisher available to the subscriber. Using this function only makes sense if subscribeMode is set to manual

Parameters

ParameterType
roomIdRoomId
subscriberPeerIdPeerId
tracksTrackId[]

Returns

Promise<void>