server.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. var app = require('express')();
  2. var server = require('http').createServer(app);
  3. var webRTC = require('webrtc.io').listen(server);
  4. app.all('/*', function(req, res, next) {
  5. res.header("Access-Control-Allow-Origin", "*");
  6. res.header("Access-Control-Allow-Headers", "X-Requested-With");
  7. next();
  8. });
  9. var port = process.env.PORT || 8080;
  10. server.listen(port);
  11. app.get('/', function(req, res) {
  12. res.sendFile(__dirname + '/index.html');
  13. });
  14. app.get('/style.css', function(req, res) {
  15. res.sendFile(__dirname + '/style.css');
  16. });
  17. app.get('/script.js', function(req, res) {
  18. res.sendFile(__dirname + '/script.js');
  19. });
  20. app.get('/webrtc.io.js', function(req, res) {
  21. res.sendFile(__dirname + '/webrtc.io.js');
  22. });
  23. var folks = 0;
  24. server.on('connection', function (socket){
  25. folks++;
  26. socket.on('close', function () {
  27. folks--;
  28. });
  29. });
  30. app.get('/status', function(req, res) {
  31. if (folks >= 4) {res.json({'online': 'yes'});}
  32. else {res.json({'online': 'no'});}
  33. });
  34. webRTC.rtc.on('chat_msg', function(data, socket) {
  35. var roomList = webRTC.rtc.rooms[data.room] || [];
  36. for (var i = 0; i < roomList.length; i++) {
  37. var socketId = roomList[i];
  38. if (socketId !== socket.id) {
  39. var soc = webRTC.rtc.getSocket(socketId);
  40. if (soc) {
  41. soc.send(JSON.stringify({
  42. "eventName": "receive_chat_msg",
  43. "data": {
  44. "messages": data.messages,
  45. "color": data.color
  46. }
  47. }), function(error) {
  48. if (error) {
  49. console.log(error);
  50. }
  51. });
  52. }
  53. }
  54. }
  55. });