Loading nodemon.json 0 → 100644 +7 −0 Original line number Diff line number Diff line { "events": { "restart": "sh -c 'lsof -i :${PORT:-3000} -t | xargs kill'", "crash": "sh -c 'lsof -i :${PORT:-3000} -t | xargs kill'" }, "delay": 1500 } socket.js +49 −0 Original line number Diff line number Diff line Loading @@ -11,9 +11,28 @@ Http.listen(3000, () => { }); var currentCard = {}; var clients = {}; // Value = ClientID / Key = [SessionID, Team] / Team = 0 (total), 1 (red) or 2 (blue) var clientsInSession = {}; // Value = SessionID / Key = [total, red, blue} function getSumClients (sessionName, team, action) { // Team = 0 (total), 1 (red) or 2 (blue) / Action = 1 (add) or -1 (remove) if (!clientsInSession.hasOwnProperty(sessionName)) { clientsInSession[sessionName] = [0, 0, 0]; } if (team === 0) { clientsInSession[sessionName] = [clientsInSession[sessionName][0] + action, clientsInSession[sessionName][1], clientsInSession[sessionName][2]]; } if (team === 1) { clientsInSession[sessionName] = [clientsInSession[sessionName][0] + action, clientsInSession[sessionName][1] + action, clientsInSession[sessionName][2]]; } if (team === 2) { clientsInSession[sessionName] = [clientsInSession[sessionName][0] + action, clientsInSession[sessionName][1], clientsInSession[sessionName][2] + action]; } return {total: clientsInSession[sessionName][0], red: clientsInSession[sessionName][1], blue: clientsInSession[sessionName][2]}; } Socketio.on("connection", socket => { console.log('new Socket connect'); clients[socket.id] = [null, null]; for (var key in currentCard) { socket.emit(key, currentCard[key]) Loading Loading @@ -43,6 +62,8 @@ Socketio.on("connection", socket => { socket.emit(data.sessionName+":newRound", false); Socketio.emit(data.sessionName+":endRound", true); socket.emit(data.sessionName+":endRound", true); let sumClients = getSumClients(data.sessionName, null, 0); Socketio.emit(data.sessionName+":sessionPlayers", sumClients); }); socket.on("canPressTabooh", data => { console.log('CanPressTabooh from: ', data.sessionName, data.canPressTabooh); Loading @@ -54,5 +75,33 @@ Socketio.on("connection", socket => { Socketio.emit(data.sessionName+":historyChanged", data); socket.emit(data.sessionName+":historyChanged", data); }); socket.on("sessionPlayers", data => { const client = clients[socket.id]; console.log('CLIENT: ', client, data.team); if (data.sessionName === null && client[0] !== null) { let sumClients = getSumClients(client[0], client[1], -1); Socketio.emit(client[0]+":sessionPlayers", sumClients); clients[socket.id] = [null, null]; } else { if (data.sessionName !== client[0] || data.team !== client[1]) { let sumClients = getSumClients(client[0], client[1], -1); Socketio.emit(client[0]+":sessionPlayers", sumClients); clients[socket.id] = [data.sessionName, data.team]; sumClients = getSumClients(data.sessionName, data.team, data.newAction); Socketio.emit(data.sessionName+":sessionPlayers", sumClients); socket.emit(data.sessionName+":sessionPlayers", sumClients); } } }); socket.on("disconnect", () => { const client = clients[socket.id]; console.log("DISCONNECT CLIENT: ", client); if (client !== null && client[0] !== null) { const sumClients = getSumClients(client[0], client[1], -1); Socketio.emit(client[0]+":sessionPlayers", sumClients); } delete clients[socket.id]; }); }); Loading
nodemon.json 0 → 100644 +7 −0 Original line number Diff line number Diff line { "events": { "restart": "sh -c 'lsof -i :${PORT:-3000} -t | xargs kill'", "crash": "sh -c 'lsof -i :${PORT:-3000} -t | xargs kill'" }, "delay": 1500 }
socket.js +49 −0 Original line number Diff line number Diff line Loading @@ -11,9 +11,28 @@ Http.listen(3000, () => { }); var currentCard = {}; var clients = {}; // Value = ClientID / Key = [SessionID, Team] / Team = 0 (total), 1 (red) or 2 (blue) var clientsInSession = {}; // Value = SessionID / Key = [total, red, blue} function getSumClients (sessionName, team, action) { // Team = 0 (total), 1 (red) or 2 (blue) / Action = 1 (add) or -1 (remove) if (!clientsInSession.hasOwnProperty(sessionName)) { clientsInSession[sessionName] = [0, 0, 0]; } if (team === 0) { clientsInSession[sessionName] = [clientsInSession[sessionName][0] + action, clientsInSession[sessionName][1], clientsInSession[sessionName][2]]; } if (team === 1) { clientsInSession[sessionName] = [clientsInSession[sessionName][0] + action, clientsInSession[sessionName][1] + action, clientsInSession[sessionName][2]]; } if (team === 2) { clientsInSession[sessionName] = [clientsInSession[sessionName][0] + action, clientsInSession[sessionName][1], clientsInSession[sessionName][2] + action]; } return {total: clientsInSession[sessionName][0], red: clientsInSession[sessionName][1], blue: clientsInSession[sessionName][2]}; } Socketio.on("connection", socket => { console.log('new Socket connect'); clients[socket.id] = [null, null]; for (var key in currentCard) { socket.emit(key, currentCard[key]) Loading Loading @@ -43,6 +62,8 @@ Socketio.on("connection", socket => { socket.emit(data.sessionName+":newRound", false); Socketio.emit(data.sessionName+":endRound", true); socket.emit(data.sessionName+":endRound", true); let sumClients = getSumClients(data.sessionName, null, 0); Socketio.emit(data.sessionName+":sessionPlayers", sumClients); }); socket.on("canPressTabooh", data => { console.log('CanPressTabooh from: ', data.sessionName, data.canPressTabooh); Loading @@ -54,5 +75,33 @@ Socketio.on("connection", socket => { Socketio.emit(data.sessionName+":historyChanged", data); socket.emit(data.sessionName+":historyChanged", data); }); socket.on("sessionPlayers", data => { const client = clients[socket.id]; console.log('CLIENT: ', client, data.team); if (data.sessionName === null && client[0] !== null) { let sumClients = getSumClients(client[0], client[1], -1); Socketio.emit(client[0]+":sessionPlayers", sumClients); clients[socket.id] = [null, null]; } else { if (data.sessionName !== client[0] || data.team !== client[1]) { let sumClients = getSumClients(client[0], client[1], -1); Socketio.emit(client[0]+":sessionPlayers", sumClients); clients[socket.id] = [data.sessionName, data.team]; sumClients = getSumClients(data.sessionName, data.team, data.newAction); Socketio.emit(data.sessionName+":sessionPlayers", sumClients); socket.emit(data.sessionName+":sessionPlayers", sumClients); } } }); socket.on("disconnect", () => { const client = clients[socket.id]; console.log("DISCONNECT CLIENT: ", client); if (client !== null && client[0] !== null) { const sumClients = getSumClients(client[0], client[1], -1); Socketio.emit(client[0]+":sessionPlayers", sumClients); } delete clients[socket.id]; }); });