server.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. var express = require('express');
  2. var fs = require('fs');
  3. var app = express.createServer();
  4. var io = require('socket.io').listen(app);
  5. // Initialize main server.
  6. app.use(express.bodyParser());
  7. app.use(express.static(__dirname + '/public'));
  8. app.set('view engine', 'ejs');
  9. app.set('views', __dirname + '/views');
  10. // P2P sources: { socket id => url }.
  11. sources = {};
  12. // socket.io clients.
  13. clients = {};
  14. // P2Ps. { source id => group members }
  15. connections = {};
  16. // For connecting clients:
  17. // Src will connect upon creating a link.
  18. // Receivers will connect after clicking a button and entering an optional key.
  19. io.sockets.on('connection', function(socket) {
  20. clients[socket.id] = socket;
  21. // Source connected.
  22. socket.on('source', function(from, msg) {
  23. });
  24. // Offer from src to dest.
  25. socket.on('offer', function (from, msg) {
  26. });
  27. // Answer from dest to src.
  28. socket.on('answer', function (from, msg) {
  29. var source = clients[msg.answer];
  30. source.emit('client-connected' { member: msg.member, offer: msg.offer });
  31. });
  32. socket.on('disconnect', function() {
  33. // Handle on client side?
  34. socket.broadcast.to(connections[socket.id]).emit('Host disconnected');
  35. delete connections[socket.id];
  36. delete clients[socket.id];
  37. });
  38. });
  39. app.get('/', function(req, res){
  40. res.render('index');
  41. });
  42. app.listen(80);