Advertisement
Tristan-Nel

Untitled

Apr 30th, 2020
405
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. console.log("Run main script");
  2.  
  3. //var kurentoUtils = require("kurento-utils");
  4. var audio; // = document.querySelector("audio");
  5. var video; // = document.querySelector("video");
  6. let webRtcPeer;
  7.  
  8. const ws = new WebSocket("wss://kurento-test.tk:8443/broadcast");
  9. const configuration = {
  10.   iceServers: [
  11.     {
  12.       urls: "turn:35.187.47.233:3478",
  13.       username: "kurento",
  14.       credential: "kurento",
  15.     },
  16.   ],
  17. };
  18. const constraints = {
  19.   audio: true,
  20. };
  21.  
  22. window.onload = () => {
  23.   audio = document.getElementById("audio");
  24.   video = document.getElementById("video");
  25. };
  26.  
  27. window.onbeforeunload = function () {
  28.   ws.close();
  29. };
  30.  
  31. ws.onopen = () => {
  32.   console.log("WebSocket connection open");
  33.   viewer();
  34. };
  35.  
  36. ws.onmessage = (message) => {
  37.   var parsedMessage = JSON.parse(message.data);
  38.   console.info("Received message: " + message.data);
  39.   switch (parsedMessage.id) {
  40.     case "presenterResponse":
  41.       console.error(parsedMessage);
  42.       break;
  43.     case "listenerResponse":
  44.       viewerResponse(parsedMessage);
  45.       break;
  46.     case "stopCommunication":
  47.       dispose();
  48.       break;
  49.     case "iceCandidate":
  50.       webRtcPeer.addIceCandidate(parsedMessage.candidate);
  51.       break;
  52.     default:
  53.       console.error("Unrecognized message", parsedMessage);
  54.   }
  55. };
  56.  
  57. ws.onerror = (error) => {
  58.   console.error(error.message);
  59. };
  60.  
  61. ws.onclose = (event) => {
  62.   console.log(event.code, event.reason);
  63. };
  64.  
  65. // WebRTC start
  66.  
  67. function onError(error) {
  68.   if (error) console.log(error);
  69. }
  70.  
  71. function viewerResponse(message) {
  72.   if (message.response != "accepted") {
  73.     console.warn(message);
  74.     var errorMsg = message.message ? message.message : "Unknown error";
  75.     console.warn("Call not accepted for the following reason: " + errorMsg);
  76.     dispose();
  77.   } else {
  78.     webRtcPeer.processAnswer(message.sdpAnswer);
  79.   }
  80. }
  81.  
  82. function viewer() {
  83.   if (!webRtcPeer) {
  84.     // showSpinner(video);
  85.     var options = {
  86.       //remoteVideo: video,
  87.       //remoteVideo: audioElement,
  88.       //remoteVideo: mediaRef.current.id,
  89.       remoteVideo: video,
  90.       //remoteVideo: audio,
  91.       onicecandidate: onIceCandidate,
  92.       configuration: configuration,
  93.       mediaConstraints: constraints,
  94.     };
  95.  
  96.     webRtcPeer = kurentoUtils.WebRtcPeer.WebRtcPeerRecvonly(options, function (
  97.       error
  98.     ) {
  99.       if (error) return onError(error);
  100.       this.generateOffer(onOfferViewer);
  101.     });
  102.   }
  103. }
  104.  
  105. function onOfferViewer(error, offerSdp) {
  106.   if (error) return onError(error);
  107.  
  108.   var message = {
  109.     id: "listener",
  110.     sdpOffer: offerSdp,
  111.   };
  112.   sendMessage(message);
  113. }
  114.  
  115. function onIceCandidate(candidate) {
  116.   console.log("Local candidate" + JSON.stringify(candidate));
  117.  
  118.   var message = {
  119.     id: "onIceCandidate",
  120.     candidate: candidate,
  121.   };
  122.   sendMessage(message);
  123. }
  124.  
  125. function stop() {
  126.   if (webRtcPeer) {
  127.     var message = {
  128.       id: "stop",
  129.     };
  130.     sendMessage(message);
  131.     dispose();
  132.   }
  133. }
  134.  
  135. function dispose() {
  136.   if (webRtcPeer) {
  137.     webRtcPeer.dispose();
  138.     webRtcPeer = null;
  139.   }
  140.   // hideSpinner(video);
  141. }
  142.  
  143. function sendMessage(message) {
  144.   var jsonMessage = JSON.stringify(message);
  145.   console.log("Sending message: " + jsonMessage);
  146.   ws.send(jsonMessage);
  147. }
  148.  
  149. // WebRTC end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement