- socket.on('pong', () => socket.isAlive = true);
-
- function launchGame(vname, players, options) {
- const gid = randomString(8);
- games[gid] = {
- vname: vname,
- players: players.map(p => {
- return (!p ? null : {sid: p.sid, name: p.name});
- }),
- options: options
- };
- if (players.every(p => p)) {
- const gameInfo = Object.assign(
- // Provide seed so that both players initialize with same FEN
- {seed: Math.floor(Math.random() * 1984), gid: gid},
- games[gid]);
- for (let i of [0, 1]) {
- send(players[i].sid, "gamestart",
- Object.assign({randvar: players[i].randvar}, gameInfo));
- }
- }
- else {
- // Incomplete players array: do not start game yet
- send(sid, "gamecreated", {gid: gid});
- // If nobody joins within a minute, delete game
- setTimeout(
- () => {
- if (games[gid] && games[gid].players.some(p => !p))
- delete games[gid];
- },
- 60000
- );
- }
- }