]> git.r.bdr.sh - rbdr/junction/blobdiff - extension/content_script.js
Use source and support srcObject
[rbdr/junction] / extension / content_script.js
index 741e1c4a88df1b03e1ca4c348d910adc866b193e..70c085fa3d98531d18bed7d3e334462ec5f3b90c 100644 (file)
@@ -1,10 +1,14 @@
+'use strict';
+
 (() => {
 
   const io = require('socket.io-client');
 (() => {
 
   const io = require('socket.io-client');
+  const Peers = require('./peers');
+  const Media = require('./media');
 
   const internals = {
 
 
   const internals = {
 
-    kSocketUrl: 'http://unlimited.pizza:8000/',
+    kSocketUrl: 'https://junction.unlimited.pizza/',
 
     port: null,
     socket: null,
 
     port: null,
     socket: null,
 
     async joinAudioCall(data) {
 
 
     async joinAudioCall(data) {
 
+      internals.tada = data.tada; // Keeping for fun
+
       try {
       try {
-        const mediaStream = await navigator.mediaDevices.getUserMedia({ audio: true });
+        const mediaStream = await Media.start();
+
+        internals.socket = io(internals.kSocketUrl, {
+          transports: ['websocket']
+        });
+
+        internals.socket.on('error', function(error) {
+
+          console.error('GENERAL ERROR', error);
+        });
 
 
-        internals.socket = io(internals.kSocketUrl);
+        internals.socket.on('connect_error', function(error) {
+
+          console.error('CONNNECT ERROR', error);
+        });
 
 
-        console.log('Connecting to server');
         internals.socket.on('connect', function() {
 
         internals.socket.on('connect', function() {
 
-          console.log("Connected to signaling server");
+          console.log("Connected to signaling server, group: ", data.currentUrl);
           internals.socket.emit('join', {
           internals.socket.emit('join', {
-            'url': currentUrl,
+            'url': data.currentUrl,
           });
         });
 
           });
         });
 
         internals.socket.on('addPeer', function(data) {
 
           console.log(data);
         internals.socket.on('addPeer', function(data) {
 
           console.log(data);
-          internals.peers++;
-          console.log(`There are now ${internals.peers} participants`);
+          Peers.add('id-'+Peers.count(), internals.tada);
+          console.log(`There are now ${Peers.count()} participants`);
         });
 
         internals.socket.on('removePeer', function() {
 
         });
 
         internals.socket.on('removePeer', function() {
 
-          internals.peers--;
-          console.log(`There are now ${internals.peers} participants`);
+          Peers.remove('id-'+(Peers.count() - 1)); // This is only for testing, don't use count to remove ids.
+          console.log(`There are now ${Peers.count()} participants`);
         });
         });
-
-        console.log('Done!');
-        internals.createAudioElement(data.tada);
       }
       catch (err) {
 
       }
       catch (err) {
 
           action: 'error'
         });
         internals.port.disconnect();
           action: 'error'
         });
         internals.port.disconnect();
-        internals.createAudioElement(data.tada);
       }
     },
 
     hangUp() {
       }
     },
 
     hangUp() {
-      document.querySelectorAll('.junction-call-audio').forEach((audioElement) => audioElement.remove());
+
+      Peers.reset();
+      Media.stop();
       internals.socket.close();
       internals.port.disconnect();
       internals.socket.close();
       internals.port.disconnect();
-    },
-
-    createAudioElement(source, type = 'audio/wav') {
-
-      const audioElement = document.createElement('audio');
-      audioElement.setAttribute('class', 'junction-call-audio');
-      audioElement.src = source;
-      audioElement.autoplay = 'autoplay';
-      audioElement.type = type;
-      document.querySelector('body').appendChild(audioElement);
     }
   };
 
     }
   };