const ws = require('ws') const peersapi = require('./peers.js') const auth = require('./auth.js') const server = new ws.Server({ port: 5648 }) const peers = new peersapi.PeerMap() server.on('connection', function(ws, req) { let [jwt, path] = auth.prepare_auth(req) let conn = auth.verify(jwt) if(conn == 'server') { console.log('[WSS] New server connection') // Peer map initialization ws.on('open', function() { peers.add_server(ws) }) ws.on('close', function() { console.log('server left') peers.remove_server(ws) }) ws.on('message', function(message) { peers.notify(message) }) } else if(conn == 'user') { ws.on('open', function() { console.log('adding with path', req.url) peers.add_user(ws, req.url) }) ws.on('close', function() { peers.remove_user(ws) }) console.log('[WSS] New user conncetion') } else { console.log('[WSS] No valid auth') ws.close() } })