X-Git-Url: https://git.r.bdr.sh/rbdr/junction/blobdiff_plain/db35e9e7647c1169425c6b949c7f4498a6d65f4c..90b43ea817f95364b429c4b55a565634b3d59638:/extension/junction.js diff --git a/extension/junction.js b/extension/junction.js index e78a02b..f1a4361 100644 --- a/extension/junction.js +++ b/extension/junction.js @@ -1,3 +1,5 @@ +const io = require('socket.io-client'); + const internals = { promisesSupported: !!(window.browser), @@ -15,6 +17,10 @@ const internals = { } }, + socket: null, + + peers: 0, + onClick() { if (internals.isInCall()) { return internals.hangUp(); @@ -29,11 +35,44 @@ const internals = { internals.setIcon('hangUp'); const activeTabs = await internals.getActiveTabs(); + const socketUrl = 'http://unlimited.pizza:8000/'; + const currentUrl = activeTabs[0].url; + + this.socket = io(socketUrl); + + var that = this; + + this.socket.on('connect', function() { + console.log("Connected to signaling server"); + + that.socket.emit('join', { + 'url': currentUrl, + }); + }); + + this.socket.on('disconnect', function() { + console.log("disconnected from signaling server"); + }); + + this.socket.on('addPeer', function(data) { + console.log(data); + that.peers++; + console.log(`There are now ${that.peers} participants`); + }); + + this.socket.on('removePeer', function() { + that.peers--; + console.log(`There are now ${that.peers} participants`); + }); + console.log(activeTabs[0].url); // placeholder while we connect backend. internals.createAudioElement(internals.getRoot().runtime.getURL('sounds/tada.wav')); }, hangUp() { + this.socket.close(); + + document.querySelectorAll('audio').forEach((audioElement) => audioElement.remove()); internals.setIcon('call');