correctly configure socket server for gcloud

This commit is contained in:
AlecM33
2022-01-17 15:07:24 -05:00
parent ae34e8d824
commit db8e34ec3a
5 changed files with 14 additions and 30 deletions

View File

@@ -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

View File

@@ -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);

View File

@@ -1,3 +1,5 @@
'use strict';
const express = require('express');
const path = require('path');
const app = express();

View File

@@ -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));

View File

@@ -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
});
}