]> git.r.bdr.sh - rbdr/junction/blobdiff - extension/content_script.js
Merge branch 'main' into rbdr-content-script
[rbdr/junction] / extension / content_script.js
index 4a6c7e65315e19b2aa761aec95deb0dd6bf82585..a9d713d74150aa9208533f8c24beaab4e1bb4e56 100644 (file)
@@ -1,7 +1,14 @@
 (() => {
 
+  const io = require('socket.io-client');
+
   const internals = {
+
+    kSocketUrl: 'http://unlimited.pizza:8000/',
+
     port: null,
+    socket: null,
+    peers: 0,
 
     onMessage(message) {
       internals[message.action](message.data);
 
       try {
         const mediaStream = await navigator.mediaDevices.getUserMedia({ audio: true });
+
+        internals.socket = io(socketUrl);
+
+        internals.socket.on('connect', function() {
+
+          console.log("Connected to signaling server");
+          internals.socket.emit('join', {
+            'url': currentUrl,
+          });
+        });
+
+        internals.socket.on('disconnect', function() {
+
+          console.log("disconnected from signaling server");
+        });
+
+        internals.socket.on('addPeer', function(data) {
+
+          console.log(data);
+          internals.peers++;
+          console.log(`There are now ${internals.peers} participants`);
+        });
+
+        internals.socket.on('removePeer', function() {
+
+          internals.peers--;
+          console.log(`There are now ${internals.peers} participants`);
+        });
+
         internals.createAudioElement(data.tada);
       }
       catch (err) {
@@ -25,6 +61,7 @@
 
     hangUp() {
       document.querySelectorAll('.junction-call-audio').forEach((audioElement) => audioElement.remove());
+      internals.socket.close();
       internals.port.disconnect();
     },