Date: Fri, 29 Mar 2024 06:22:05 +0100 (CET) Message-ID: <574531842.47349.1711689725124@docs.flashphoner.com> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_47348_760701058.1711689725124" ------=_Part_47348_760701058.1711689725124 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
=D0=9D=D0=B0=D1=87=D0=B8= =D0=BD=D0=B0=D1=8F =D1=81=D0=BE =D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8 1= .0.1.29, Web SDK =D0=B4=D0= =BE=D1=81=D1=82=D1=83=D0=BF=D0=B5=D0=BD =D0=B2 =D0=B2=D0=B8=D0=B4=D0=B5 NPM= =D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=B0 @flashphoner/sfusdk
npm i @flashphone= r/sfusdk=20
=D0=9F=D1=80=D0=B8=D0=BC=D0=B5=D1=80 = =D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1= =8F =D0=B2 =D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D0=B8 =D0= =BD=D0=B0 ReactJS: =D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5 =D0=B8 = =D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5 =D0=BA=D0=BE=D0=BC=D0=BD= =D0=B0=D1=82=D1=8B
imp= ort React, {useState} from "react"; import {Sfu, SfuEvent} from "@flashphoner/sfusdk"; export default function TestApp() { const [url, setUrl] =3D useState("ws://localhost:8080"); const [established, setEstablished] =3D useState("Not connected"); const [buttonText, setButtonText] =3D useState("Connect"); const [session, setSession] =3D useState(null); function createRoom(options: { url: string, roomName: string, pin: string, nickname: string, pc: RTCPeerConnection }) { const sfu =3D new Sfu(); sfu.connect({ url: options.url, nickname: options.nickname, logGroup: options.roomName }); const room =3D sfu.createRoom({ name: options.roomName, pin: options.pin, pc: options.pc }); return sfu; } function onClick() { if (session =3D=3D null) { console.log("Trying to connect"); const pc =3D new RTCPeerConnection(); const s =3D createRoom({ url: url, roomName: "ROOM", pin: "1234", nickname: "Test", pc: pc }).on(SfuEvent.CONNECTED, (room) =3D> { console.log("Connected!"); setEstablished("Connected!"); setButtonText("Disconnect"); setSession(s); room.join(); }).on(SfuEvent.DISCONNECTED, () =3D> { console.log("Disconnected!"); setEstablished("Not connected!"); setButtonText("Connect"); setSession(null); }); } else { let room =3D session.room(); if(room) { room.destroyRoom() } session.disconnect(); =20 } } return( <div> <div> <input type=3D"text" value=3D{url} placeholder=3D"Enter = server websocket URL" onChange=3D{(e) =3D> setUrl(e.target.value)}/> <button onClick=3D{() =3D> onClick()}>{buttonText}= </button> </div> <div>{established}</div> </div> =20 ) }=20