Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- console.log("Run main script");
- //var kurentoUtils = require("kurento-utils");
- var audio; // = document.querySelector("audio");
- var video; // = document.querySelector("video");
- let webRtcPeer;
- const ws = new WebSocket("wss://kurento-test.tk:8443/broadcast");
- const configuration = {
- iceServers: [
- {
- urls: "turn:35.187.47.233:3478",
- username: "kurento",
- credential: "kurento",
- },
- ],
- };
- const constraints = {
- audio: true,
- };
- window.onload = () => {
- audio = document.getElementById("audio");
- video = document.getElementById("video");
- };
- window.onbeforeunload = function () {
- ws.close();
- };
- ws.onopen = () => {
- console.log("WebSocket connection open");
- viewer();
- };
- ws.onmessage = (message) => {
- var parsedMessage = JSON.parse(message.data);
- console.info("Received message: " + message.data);
- switch (parsedMessage.id) {
- case "presenterResponse":
- console.error(parsedMessage);
- break;
- case "listenerResponse":
- viewerResponse(parsedMessage);
- break;
- case "stopCommunication":
- dispose();
- break;
- case "iceCandidate":
- webRtcPeer.addIceCandidate(parsedMessage.candidate);
- break;
- default:
- console.error("Unrecognized message", parsedMessage);
- }
- };
- ws.onerror = (error) => {
- console.error(error.message);
- };
- ws.onclose = (event) => {
- console.log(event.code, event.reason);
- };
- // WebRTC start
- function onError(error) {
- if (error) console.log(error);
- }
- function viewerResponse(message) {
- if (message.response != "accepted") {
- console.warn(message);
- var errorMsg = message.message ? message.message : "Unknown error";
- console.warn("Call not accepted for the following reason: " + errorMsg);
- dispose();
- } else {
- webRtcPeer.processAnswer(message.sdpAnswer);
- }
- }
- function viewer() {
- if (!webRtcPeer) {
- // showSpinner(video);
- var options = {
- //remoteVideo: video,
- //remoteVideo: audioElement,
- //remoteVideo: mediaRef.current.id,
- remoteVideo: video,
- //remoteVideo: audio,
- onicecandidate: onIceCandidate,
- configuration: configuration,
- mediaConstraints: constraints,
- };
- webRtcPeer = kurentoUtils.WebRtcPeer.WebRtcPeerRecvonly(options, function (
- error
- ) {
- if (error) return onError(error);
- this.generateOffer(onOfferViewer);
- });
- }
- }
- function onOfferViewer(error, offerSdp) {
- if (error) return onError(error);
- var message = {
- id: "listener",
- sdpOffer: offerSdp,
- };
- sendMessage(message);
- }
- function onIceCandidate(candidate) {
- console.log("Local candidate" + JSON.stringify(candidate));
- var message = {
- id: "onIceCandidate",
- candidate: candidate,
- };
- sendMessage(message);
- }
- function stop() {
- if (webRtcPeer) {
- var message = {
- id: "stop",
- };
- sendMessage(message);
- dispose();
- }
- }
- function dispose() {
- if (webRtcPeer) {
- webRtcPeer.dispose();
- webRtcPeer = null;
- }
- // hideSpinner(video);
- }
- function sendMessage(message) {
- var jsonMessage = JSON.stringify(message);
- console.log("Sending message: " + jsonMessage);
- ws.send(jsonMessage);
- }
- // WebRTC end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement