From db8e34ec3a39f05dc5171dcbf5f1abd139402600 Mon Sep 17 00:00:00 2001 From: AlecM33 Date: Mon, 17 Jan 2022 15:07:24 -0500 Subject: [PATCH] correctly configure socket server for gcloud --- client/src/modules/GameCreationStepManager.js | 4 +-- client/src/scripts/game.js | 2 ++ server/main.js | 2 ++ server/modules/GameManager.js | 3 +- server/modules/ServerBootstrapper.js | 33 ++++--------------- 5 files changed, 14 insertions(+), 30 deletions(-) diff --git a/client/src/modules/GameCreationStepManager.js b/client/src/modules/GameCreationStepManager.js index a126d62..396bf43 100644 --- a/client/src/modules/GameCreationStepManager.js +++ b/client/src/modules/GameCreationStepManager.js @@ -36,14 +36,14 @@ export class GameCreationStepManager { 2: { title: 'Create your deck of cards:', forwardHandler: () => { - if (this.deckManager.getDeckSize() >= 5 && this.deckManager.getDeckSize() <= 50) { + if (this.deckManager.getDeckSize() >= 3 && this.deckManager.getDeckSize() <= 50) { this.currentGame.deck = deckManager.getCurrentDeck().filter((card) => card.quantity > 0); cancelCurrentToast(); this.removeStepElementsFromDOM(this.step); this.incrementStep(); this.renderStep('creation-step-container', this.step); } else { - toast('You must have a deck for between 5 and 50 players', 'error', true); + toast('You must have a deck for between 3 and 50 players', 'error', true); } }, backHandler: this.defaultBackHandler diff --git a/client/src/scripts/game.js b/client/src/scripts/game.js index 45c459d..7bb4a74 100644 --- a/client/src/scripts/game.js +++ b/client/src/scripts/game.js @@ -17,9 +17,11 @@ const game = () => { if (timerWorker) { timerWorker.terminate(); } + timerWorker = null; toast('Disconnected. Attempting reconnect...', 'error', true, false); }); socket.on('connect', () => { + console.log("connect event fired"); socket.emit(globals.COMMANDS.GET_ENVIRONMENT, function (returnedEnvironment) { timerWorker = new Worker(new URL('../modules/Timer.js', import.meta.url)); prepareGamePage(returnedEnvironment, socket, timerWorker); diff --git a/server/main.js b/server/main.js index a2d3748..8d6284c 100644 --- a/server/main.js +++ b/server/main.js @@ -1,3 +1,5 @@ +'use strict'; + const express = require('express'); const path = require('path'); const app = express(); diff --git a/server/modules/GameManager.js b/server/modules/GameManager.js index 5c36be1..931a8d7 100644 --- a/server/modules/GameManager.js +++ b/server/modules/GameManager.js @@ -16,7 +16,7 @@ class GameManager { addGameSocketHandlers = (namespace, socket) => { this.namespace = namespace; socket.on(globals.CLIENT_COMMANDS.FETCH_GAME_STATE, (accessCode, personId, ackFn) => { - this.logger.trace('request for game state for accessCode ' + accessCode + ', person ' + personId); + this.logger.trace('request for game state for accessCode: ' + accessCode + ' from socket: ' + socket.id + ' with cookie: ' + personId); this.handleRequestForGameState( this.namespace, this.logger, @@ -332,6 +332,7 @@ class GameManager { UsernameGenerator.generate(), globals.USER_TYPES.SPECTATOR ); + spectator.socketId = socket.id; logger.trace('new spectator: ' + spectator.name); game.spectators.push(spectator); ackFn(GameStateCurator.getGameStateFromPerspectiveOfPerson(game, spectator, gameRunner, socket, logger)); diff --git a/server/modules/ServerBootstrapper.js b/server/modules/ServerBootstrapper.js index a59f3cb..d26e967 100644 --- a/server/modules/ServerBootstrapper.js +++ b/server/modules/ServerBootstrapper.js @@ -57,7 +57,6 @@ const ServerBootstrapper = { } else { logger.warn('starting main in PRODUCTION mode. This should not be used for local development.'); main = http.createServer(app); - app.use(require('express-force-https')); } return main; @@ -66,36 +65,16 @@ const ServerBootstrapper = { createSocketServer: (main, app, port) => { let io; if (process.env.NODE_ENV.trim() === 'development') { - const corsOptions = { - origin: 'http://localhost:' + port, - optionsSuccessStatus: 200, - methods: ['GET', 'POST'] - }; - app.use(cors(corsOptions)); io = require('socket.io')(main, { - cors: { - origin: 'http://localhost:' + port, - methods: ['GET', 'POST'], - allowedHeaders: ['Content-Type', 'X-Requested-With', 'Accept'], - credentials: false - } + cors: { origin: 'http://localhost:' + port }, + pingTimeout: 5000, + pingInterval: 5000 }); } else { - const corsOptions = { - origin: ['https://playwerewolf.uk.r.appspot.com'], - methods: ['GET', 'POST'], - allowedHeaders: ['Content-Type', 'X-Requested-With', 'Accept'], - optionsSuccessStatus: 200 - }; - app.use(cors(corsOptions)); io = require('socket.io')(main, { - cors: { - origin: ['https://playwerewolf.uk.r.appspot.com', 'wss://playwerewolf.uk.r.appspot.com'], - methods: ['GET', 'POST'], - allowedHeaders: ['Content-Type', 'X-Requested-With', 'Accept'], - credentials: true - }, - transports: ['polling'] + cors: { origin: 'https://playwerewolf.uk.r.appspot.com' }, + pingTimeout: 5000, + pingInterval: 5000 }); }