import { registerAccountCallbacks } from "./Account/accountSocket"; import { users } from "./Account/users"; import { registerLobbyCallbacks } from "./Lobby/lobbySocket"; import { playerData } from "./Player/playerData"; import { game } from "./game"; const express = require("express"); const app = express(); const port = 3000; const server = require('http').Server(app); var connectedUsers = {} server.listen(port, () => { console.log(`Server listening at port ${port}`); }); const io = require("socket.io")(server, { cors: { origin: '*', methods: ["GET", "POST"] } }); users.loadUsers(); io.on('connection', (socket) => { console.log("Got connection!"); socket.emit("connectSuccess", ""); registerAccountCallbacks(socket); registerLobbyCallbacks(socket); socket.io = io; let id = socket.id; let player = new playerData(id) connectedUsers[id] = true; game.DBPlayers[id] = player socket.on("disconnect", () => { delete connectedUsers[id] socket.disconnect() console.log(id + " disconnected"); }); socket.on('error',function(er){ console.log(er); }); }); setInterval(() => { let list = [] for (var key in connectedUsers) { if (game.DBPlayers.hasOwnProperty(key)){ list.push(game.DBPlayers[key]); } } let userCount = list.length if(userCount > 0){ io.emit('lobby', JSON.stringify(list)) } }, 1000/30) setInterval(() => { console.log("Connected losers: " + Object.keys(connectedUsers).length); }, 60 * 1000) process.on('SIGINT', function () { console.log('Ctrl-C...'); process.exit(2); }); process.on('exit', function () { users.saveUsers(); console.log("exitted"); });