Skip to main content

Set up your server

Install the SDK

Install the SDK for the language of your choice. We provide libraries for Node and Python.
It's also possible to use the bare REST API, in this case you can skip this step.

npm install @fishjam-cloud/js-server-sdk

Setup your client

Let's setup everything you need to start communicating with a Fishjam instance.
First of all, view your app in the Fishjam developer panel and copy your Fishjam URL and the Management Token.
They are required to proceed. Now, we are ready to dive into the code.

import { FishjamClient } from '@fishjam-cloud/js-server-sdk';

const fishjamUrl = process.env.FISHJAM_URL;
const managementToken = process.env.FISHJAM_MANAGEMENT_TOKEN;

const fishjamClient = new FishjamClient({ fishjamUrl, managementToken });

Managing rooms

Create a room to get the roomId and be able to start adding peers.

const createdRoom = await fishjamClient.createRoom();

const theSameRoom = await fishjamClient.getRoom(createdRoom.id);

await fishjamClient.deleteRoom(theSameRoom.id)

// puff, it's gone!

Managing peers

Create a peer to obtain the peer token allowing your user to join the room. At any time you can terminate user's access by deleting the peer.

const { peer, peerToken } = await fishjamClient.createPeer(roomId);

await fishjamClient.deletePeer(roomId, peer.id);

Listening to events

Fishjam instance is a stateful server that is emitting messages upon certain events.
You can listen for those messages and react as you prefer.
There are two options to obtain these.

Webhooks

Simply pass the your webhook url as a webhookUrl parameter when creating a room.

const webhookUrl = "https://example.com";
await fishjamClient.createRoom({ webhookUrl });

SDK Notifier

Our SDKs come equipped with a Notifier allowing you to subscribe for messages. It sets up a websocket connection with a Fishjam instance and provides a simple interface allowing you to handle messages.

import { FishjamWSNotifier } from '@fishjam-cloud/js-server-sdk';

const onClose = console.log;
const onError = console.error;
const onConnectionFailed = console.error;

const fishjamNotifier = new FishjamWSNotifier({ fishjamUrl, managementToken }, onError, onClose, onConnectionFailed);

fishjamNotifier.on('roomCreated', console.log);