mirror of
https://github.com/AlecM33/Werewolf.git
synced 2025-12-26 15:57:50 +01:00
more refactoring
This commit is contained in:
67
index.js
67
index.js
@@ -1,11 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
const express = require('express');
|
||||
const path = require('path');
|
||||
const app = express();
|
||||
const GameManager = require('./server/modules/GameManager.js');
|
||||
const SocketManager = require('./server/modules/SocketManager.js');
|
||||
const globals = require('./server/config/globals');
|
||||
const ServerBootstrapper = require('./server/modules/ServerBootstrapper');
|
||||
|
||||
app.use(express.json());
|
||||
@@ -15,64 +11,17 @@ const args = ServerBootstrapper.processCLIArgs();
|
||||
const logger = require('./server/modules/Logger')(args.logLevel);
|
||||
logger.info('LOG LEVEL IS: ' + args.logLevel);
|
||||
|
||||
const index = ServerBootstrapper.createServerWithCorrectHTTPProtocol(app, args.useHttps, args.port, logger);
|
||||
const port = parseInt(process.env.PORT) || args.port || 8080;
|
||||
|
||||
app.set('port', parseInt(process.env.PORT) || args.port || 8080);
|
||||
const webServer = ServerBootstrapper.createServerWithCorrectHTTPProtocol(app, args.useHttps, args.port, logger);
|
||||
const singletons = ServerBootstrapper.singletons(logger);
|
||||
|
||||
const inGameSocketServer = ServerBootstrapper.createSocketServer(index, app, args.port, logger);
|
||||
const gameNamespace = ServerBootstrapper.createGameSocketNamespace(inGameSocketServer, logger);
|
||||
const socketServer = singletons.socketManager.createSocketServer(webServer, app, port);
|
||||
singletons.gameManager.setGameSocketNamespace(singletons.socketManager.createGameSocketNamespace(socketServer, logger, singletons.gameManager));
|
||||
ServerBootstrapper.establishRouting(app, express);
|
||||
|
||||
let gameManager;
|
||||
app.set('port', port);
|
||||
|
||||
/* Instantiate the singleton game manager */
|
||||
if (process.env.NODE_ENV.trim() === 'development') {
|
||||
gameManager = new GameManager(logger, globals.ENVIRONMENT.LOCAL, gameNamespace).getInstance();
|
||||
} else {
|
||||
gameManager = new GameManager(logger, globals.ENVIRONMENT.PRODUCTION, gameNamespace).getInstance();
|
||||
}
|
||||
|
||||
/* Instantiate the singleton socket manager */
|
||||
const socketManager = new SocketManager(logger, inGameSocketServer).getInstance();
|
||||
|
||||
gameNamespace.on('connection', function (socket) {
|
||||
socket.on('disconnecting', (reason) => {
|
||||
logger.trace('client socket disconnecting because: ' + reason);
|
||||
});
|
||||
gameManager.addGameSocketHandlers(gameNamespace, socket);
|
||||
});
|
||||
|
||||
/* api endpoints */
|
||||
const games = require('./server/api/GamesAPI');
|
||||
const admin = require('./server/api/AdminAPI');
|
||||
app.use('/api/games', games);
|
||||
app.use('/api/admin', admin);
|
||||
|
||||
/* serve all the app's pages */
|
||||
app.use('/manifest.json', (req, res) => {
|
||||
res.sendFile(path.join(__dirname, './manifest.json'));
|
||||
});
|
||||
|
||||
app.use('/favicon.ico', (req, res) => {
|
||||
res.sendFile(path.join(__dirname, './client/favicon_package/favicon.ico'));
|
||||
});
|
||||
|
||||
const router = require('./server/routes/router');
|
||||
app.use('', router);
|
||||
|
||||
app.use('/dist', express.static(path.join(__dirname, './client/dist')));
|
||||
|
||||
// set up routing for static content that isn't being bundled.
|
||||
app.use('/images', express.static(path.join(__dirname, './client/src/images')));
|
||||
app.use('/styles', express.static(path.join(__dirname, './client/src/styles')));
|
||||
app.use('/webfonts', express.static(path.join(__dirname, './client/src/webfonts')));
|
||||
app.use('/robots.txt', (req, res) => {
|
||||
res.sendFile(path.join(__dirname, './client/robots.txt'));
|
||||
});
|
||||
|
||||
app.use(function (req, res) {
|
||||
res.sendFile(path.join(__dirname, './client/src/views/404.html'));
|
||||
});
|
||||
|
||||
index.listen(app.get('port'), function () {
|
||||
webServer.listen(app.get('port'), function () {
|
||||
logger.info(`Starting server on port ${app.get('port')}`);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user