Skip to content

ionorg/ion-sdk-js

Folders and files

NameName
Last commit message
Last commit date
Oct 20, 2020
Nov 23, 2021
May 29, 2022
Oct 10, 2020
Oct 10, 2020
May 4, 2020
Nov 5, 2021
May 4, 2020
Nov 19, 2021
Apr 1, 2021
Mar 26, 2021
Mar 30, 2022
Mar 30, 2022
May 4, 2020
Nov 19, 2021
May 6, 2020
Nov 19, 2021
Nov 19, 2021

Repository files navigation

ion-sdk-js

Frontend sdk for the Ion backend.

Installation

npm install ion-sdk-js

Usage

import { Client, LocalStream, RemoteStream } from 'ion-sdk-js';
import { IonSFUJSONRPCSignal } from 'ion-sdk-js/lib/signal/json-rpc-impl';
const signal = new IonSFUJSONRPCSignal("wss://ion-sfu:7000/ws");
const client = new Client(signal);
signal.onopen = () => client.join("test session", "test uid")

// Setup handlers
client.ontrack = (track: MediaStreamTrack, stream: RemoteStream) => {
    // mute a remote stream
    stream.mute()
    // unmute a remote stream
    stream.unmute()

    if (track.kind === "video") {
         // prefer a layer
         stream.preferLayer("low" | "medium" | "high")
    }
});

// Get a local stream
const local = await LocalStream.getUserMedia({
    audio: true,
    video: true,
    simulcast: true, // enable simulcast
});

// Publish stream
client.publish(local);

// mute local straem
local.mute()

// unmute local stream
local.unmute()

// create a datachannel
const dc = client.createDataChannel("data")
dc.onopen = () => dc.send("hello world")

// Close client connection
client.close();