app.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. const express = require('express');
  2. const app = express();
  3. const http = require('http');
  4. const server = http.createServer(app);
  5. /*const { Server } = require("socket.io");
  6. const io = new Server(server);*/
  7. const io = require("socket.io")(server, {
  8. cors: {
  9. origin: "*",
  10. methods: ["GET", "POST"]
  11. }
  12. });
  13. //variable para guardar los logs
  14. var connections = [];
  15. app.get('/', (req, res) => {
  16. //res.send('<h1>Hola mundo</h1>');
  17. res.sendFile(__dirname + '/index.html');
  18. });
  19. app.get('/adm', (req, res) => {
  20. res.sendFile(__dirname + '/adm.html');
  21. });
  22. io.on('connection', (socket) => {
  23. socket.on('register', (msg) => {
  24. if(connections.length == 0){
  25. connections.push(`${msg}.${socket.id}`);
  26. }else{
  27. var i = 0;
  28. var registered = false;
  29. do{
  30. connArr = connections[i].split(".");
  31. if(connArr[1] == socket.id){
  32. registered = true;
  33. }
  34. i++;
  35. }while(i < connections.length && !registered);
  36. if(!registered) connections.push(`${msg}.${socket.id}`);
  37. }
  38. io.emit('new_connection', JSON.stringify(connections));
  39. });
  40. socket.on('unregister', (msg) => {
  41. let i = 0;
  42. let indexes = [];
  43. while(i < connections.length){
  44. connArr = connections[i].split(".");
  45. if(connArr[0] == msg){
  46. indexes.push(i);
  47. }
  48. i++;
  49. }
  50. if(indexes.length > 0){
  51. indexes.forEach(item => connections.splice(item, 1));
  52. io.emit('disconnection', JSON.stringify(connections));
  53. }
  54. });
  55. socket.on('disconnect', () => {
  56. let i = 0;
  57. let index = -1;
  58. while(i < connections.length){
  59. let element = connections[i];
  60. let elementArr = element.split(".");
  61. if(elementArr[1] == socket.id) index = i;
  62. i++;
  63. }
  64. if(index > -1) connections.splice(index, 1);
  65. io.emit('disconnection', JSON.stringify(connections));
  66. });
  67. socket.on('get_connections', () => {
  68. io.emit('current_connections', JSON.stringify(connections));
  69. });
  70. socket.on('profile_updated', (msg) => {
  71. io.emit('refresh_permissions', msg);
  72. });
  73. });
  74. server.listen(3200, () => {
  75. console.log('listening on *:3200');
  76. });