You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
Version 1
Current »
Since build 1.0.1.29, SFU SDK is available as NPM package @flashphoner/sfusdk
npm i @flashphoner/sfusdk
Below is a simple usage example in ReactJS application: room creation and destruction
import React, {useState} from "react";
import * as SFU from '@flashphoner/sfusdk/src/sdk/sfu.js'
import * as Constants from '@flashphoner/sfusdk/src/sdk/constants.js'
export default function TestApp() {
const [url, setUrl] = useState("ws://localhost:8080");
const [established, setEstablished] = useState("Not connected");
const [buttonText, setButtonText] = useState("Connect");
const [session, setSession] = useState(null);
function onClick() {
if (session == null) {
console.log("Trying to connect");
const pc = new RTCPeerConnection();
const s = SFU.createRoom({
url: url,
roomName: "ROOM",
pin: "1234",
nickname: "Test",
pc: pc
}).on(Constants.SFU_EVENT.CONNECTED, (room) => {
console.log("Connected!");
setEstablished("Connected!");
setButtonText("Disconnect");
setSession(s);
room.join();
}).on(Constants.SFU_EVENT.DISCONNECTED, () => {
console.log("Disconnected!");
setEstablished("Not connected!");
setButtonText("Connect");
setSession(null);
});
} else {
let room = session.room();
if(room) {
room.destroyRoom()
}
session.disconnect();
}
}
return(
<div>
<div>
<input type="text" value={url} placeholder="Enter server websocket URL" onChange={(e) => setUrl(e.target.value)}/>
<button onClick={() => onClick()}>{buttonText}</button>
</div>
<div>{established}</div>
</div>
)
}