signaling-server.js 781 B

1234567891011121314151617181920212223242526272829
  1. /* eslint-disable @typescript-eslint/no-var-requires */
  2. const WebSocket = require('ws');
  3. const clients = {};
  4. const wss = new WebSocket.Server({ port: 8000 });
  5. wss.on('connection', (ws, req) => {
  6. const id = req.url.replace('/', '');
  7. console.log(`New Connection from ${id}`);
  8. clients[id] = ws;
  9. ws.on('message', (buffer) => {
  10. let msg = JSON.parse(buffer);
  11. let peerId = msg.id;
  12. let peerWs = clients[peerId];
  13. console.log(`Message from ${id} to ${peerId} : ${buffer}`);
  14. if (!peerWs) return console.error(`Can not find peer with ID ${peerId}`);
  15. msg.id = id;
  16. peerWs.send(JSON.stringify(msg));
  17. });
  18. ws.on('close', () => {
  19. console.log(`${id} disconected`);
  20. delete clients[id];
  21. });
  22. });