main.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. var http = require('http');
  2. var fs = require('fs');
  3. var app = http.createServer(handler);
  4. var io = require('socket.io').listen(app);
  5. app.listen(8081);
  6. var userList = [];
  7. function handler(request, response)
  8. {
  9. fs.readFile(__dirname + "/index.html", function(err, data)
  10. {
  11. if (err)
  12. {
  13. response.writeHead("500", {'Content-Type': 'text/plain'});
  14. response.end("Internal server error loading page.");
  15. }
  16. else
  17. {
  18. response.writeHead("200", {'Content-Type': 'text/html'});
  19. response.end(data);
  20. }
  21. });
  22. }
  23. io.on('connection', function(socket)
  24. {
  25. // console.log("New user registered!");
  26. userList.push(socket);
  27. socket.on('notification', function (data)
  28. {
  29. //console.log(data);
  30. if (data.message == undefined)
  31. {
  32. // console.log("New user message!");
  33. sendMessage("<span class='italics'>" + data.username.replace(/</g,"&lt;") + " has joined the chat!</span>", false);
  34. }
  35. else
  36. {
  37. // console.log("New user message!");
  38. sendMessage(data.username + ": " + data.message, true);
  39. }
  40. });
  41. });
  42. function sendMessage(text, check)
  43. {
  44. // console.log(text);
  45. if (check)
  46. {
  47. text = text.trim().replace(/</g,"&lt;");
  48. }
  49. for (var i = 0; i < userList.length; i++)
  50. {
  51. if (userList[i].connected)
  52. {
  53. userList[i].emit('notification', text+"<br />\n");
  54. }
  55. else
  56. {
  57. userList.splice(i--, 1);
  58. }
  59. }
  60. }