From 8e95c14b6ada749799c3861ee4358c449c0bfdcd Mon Sep 17 00:00:00 2001 From: Oliver-Akins Date: Wed, 23 Dec 2020 12:38:39 -0700 Subject: [PATCH] Intial websocket server creation --- server/src/main.ts | 17 +++++++++++++++++ server/src/websocket.ts | 25 +++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 server/src/main.ts create mode 100644 server/src/websocket.ts diff --git a/server/src/main.ts b/server/src/main.ts new file mode 100644 index 0000000..05ec5e4 --- /dev/null +++ b/server/src/main.ts @@ -0,0 +1,17 @@ +import * as toml from "toml"; +import { Logger } from "tslog"; +import { readFileSync } from "fs"; +import startWebsocket from "./websocket"; + +let conf: config = toml.parse(readFileSync(`server.toml`, `utf-8`)); + +export const log: Logger = new Logger({ + displayFunctionName: false, + displayLoggerName: false, + displayFilePath: `hidden`, + displayLogLevel: true, + minLevel: conf.log.level, + name: conf.log.name, +}); + +startWebsocket(conf); \ No newline at end of file diff --git a/server/src/websocket.ts b/server/src/websocket.ts new file mode 100644 index 0000000..f384748 --- /dev/null +++ b/server/src/websocket.ts @@ -0,0 +1,25 @@ +import { log } from "./main"; +import { Server, Socket } from "socket.io"; + +import CreateGame from "./events/CreateGame"; + + +export default async (conf: config) => { + + const io = new Server(); + + io.listen(conf.websocket.port, { + cors: { + origin: conf.webserver.hostname, + credentials: true, + } + }) + + io.on(`connection`, (socket: Socket) => { + log.debug(`Client connected with ID: ${socket.id}`); + + socket.on(`CreateGame`, (data: CreateGame) => CreateGame(io, socket, data)); + }); + + log.info(`Server started on port ${conf.websocket.port}`); +} \ No newline at end of file