const WebSocket = require('ws'); const UrlParser = require('url'); const uuid = require('node-uuid'); const messenger = require('./messenger'); const jsDir = `${__dirname}/server`; const RicochetApp = require(`${jsDir}/ricochet.js`); const clientApps = { '/ricochet': RicochetApp.new({ messenger }) }; const onConnect = (ws, req) => { // Store an ID on the socket connection. ws.id = uuid.v4(); const url = UrlParser.parse(req.url, true); if (clientApps[url.pathname]) { app.onConnect(ws, req); ws.on('message', app.onMessage); ws.on('close', app.onDisconnect); } }; //===== Generic socket server for any application instantiated above. const wss = new WebSocket.Server({ port: 8080 }); wss.on('connection', onConnect); console.log("Websocket server listening on :8080");