(() => {
+ const io = require('socket.io-client');
+
const internals = {
+
+ kSocketUrl: 'https://junction.unlimited.pizza/',
+
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(internals.kSocketUrl, {
+ transports: ['websocket']
+ });
+
+ internals.socket.on('error', function(error) {
+
+ console.error('GENERAL ERROR', error);
+ });
+
+ internals.socket.on('connect_error', function(error) {
+
+ console.error('CONNNECT ERROR', error);
+ });
+
+ internals.socket.on('connect', function() {
+
+ console.log("Connected to signaling server, group: ", data.currentUrl);
+ internals.socket.emit('join', {
+ 'url': data.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) {
hangUp() {
document.querySelectorAll('.junction-call-audio').forEach((audioElement) => audioElement.remove());
+ internals.socket.close();
internals.port.disconnect();
},