Flashphoner WebCallServer JavaScript API (Web SDK) implementation.
npm install @flashphoner/websdk
two-way-streaming.html:
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript" src="node_modules/@flashphoner/websdk/flashphoner.js"></script>
<script type="text/javascript" src="two-way-streaming.js"></script>
</head>
<body onload="init_api()">
<div id="publish" style="width:320px;height:240px;border: solid 1px"></div>
<br/><button id="publishBtn">Publish</button><br/>
<br/>
<div id="play" style="width:320px;height:240px;border: solid 1px"></div>
<br/><button id="playBtn">Play</button><br/>
<br/>
<br/><button id="stopBtn">Stop</button><br/>
</body>
</html>
two-way-streaming.js:
//Constants
var SESSION_STATUS = Flashphoner.constants.SESSION_STATUS;
var STREAM_STATUS = Flashphoner.constants.STREAM_STATUS;
var session;
var stream;
//Init Flashphoner API on page load
function init_api() {
Flashphoner.init({});
publishBtn.onclick = connect;
playBtn.onclick = playStream;
stopBtn.onclick = stopPublish;
}
//Connect to WCS server over websockets
function connect() {
session = Flashphoner.createSession({
urlServer: "wss://demo.flashphoner.com"
}).on(SESSION_STATUS.ESTABLISHED, function(session) {
publishStream(session);
});
}
//Publish stream
function publishStream(session) {
stream = session.createStream({
name: "stream",
display: document.getElementById("publish"),
});
stream.publish();
}
//Playing stream
function playStream() {
session.createStream({
name: "stream",
display: document.getElementById("play"),
}).play();
}
//Stopping stream
function stopPublish() {
stream.stop();
}
Please look for more examples on GitHub and on this page
Please read the details here and API docs here
WebSDK is build with webrtc/adapter library version not lower than 7.2.6. In this regard, direct use of this library together with WebSDK should be avoided.