const express = require('express'); const app = express(); const http = require('http'); const server = http.createServer(app); /*const { Server } = require("socket.io"); const io = new Server(server);*/ const io = require("socket.io")(server, { cors: { origin: "*", methods: ["GET", "POST"] } }); //variable para guardar los logs var connections = []; app.get('/', (req, res) => { //res.send('

Hola mundo

'); res.sendFile(__dirname + '/index.html'); }); app.get('/adm', (req, res) => { res.sendFile(__dirname + '/adm.html'); }); io.on('connection', (socket) => { socket.on('register', (msg) => { if(connections.length == 0){ connections.push(`${msg}.${socket.id}`); }else{ var i = 0; var registered = false; do{ connArr = connections[i].split("."); if(connArr[1] == socket.id){ registered = true; } i++; }while(i < connections.length && !registered); if(!registered) connections.push(`${msg}.${socket.id}`); } io.emit('new_connection', JSON.stringify(connections)); }); socket.on('unregister', (msg) => { let i = 0; let indexes = []; while(i < connections.length){ connArr = connections[i].split("."); if(connArr[0] == msg){ indexes.push(i); } i++; } if(indexes.length > 0){ indexes.forEach(item => connections.splice(item, 1)); io.emit('disconnection', JSON.stringify(connections)); } }); socket.on('disconnect', () => { let i = 0; let index = -1; while(i < connections.length){ let element = connections[i]; let elementArr = element.split("."); if(elementArr[1] == socket.id) index = i; i++; } if(index > -1) connections.splice(index, 1); io.emit('disconnection', JSON.stringify(connections)); }); socket.on('get_connections', () => { io.emit('current_connections', JSON.stringify(connections)); }); socket.on('profile_updated', (msg) => { io.emit('refresh_permissions', msg); }); }); server.listen(3200, () => { console.log('listening on *:3200'); });