From a0eabce7eca8f8e72ecda11ea7b255e90a6811fc Mon Sep 17 00:00:00 2001 From: Ben Kyd Date: Sat, 30 Jan 2021 23:11:49 +0000 Subject: [PATCH] bruh --- LICENSE | 1 + client/public/index.html | 3 +- client/public/index.js | 4 +- client/public/lobby/index.html | 5 +- .../socket.js => client/public/lobby/index.js | 0 server/index.js | 4 +- server/package-lock.json | 162 ++++++++++++++++++ server/package.json | 4 +- server/src/game-registrar.js | 2 +- server/src/router.js | 2 + server/src/socketserver.js | 19 ++ server/src/webserver.js | 18 +- 12 files changed, 210 insertions(+), 14 deletions(-) create mode 100644 LICENSE rename server/src/socket.js => client/public/lobby/index.js (100%) create mode 100644 server/src/socketserver.js diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..22242c6 --- /dev/null +++ b/LICENSE @@ -0,0 +1 @@ +COPYRIGHT 2021 BENJAMIN KYD ALL RIGHTS RESERVED diff --git a/client/public/index.html b/client/public/index.html index 250ec29..6c4d70c 100644 --- a/client/public/index.html +++ b/client/public/index.html @@ -2,9 +2,10 @@ + + - Bruh online diff --git a/client/public/index.js b/client/public/index.js index 32a70d1..e3d67d9 100644 --- a/client/public/index.js +++ b/client/public/index.js @@ -6,11 +6,9 @@ const ConnectionState = document.querySelector('#connection-state'); UsernameForm.addEventListener('submit', onUsernameSubmit); -(()=>{ - // Presettup +const socket = io('localhost:8080'); -})() // User submits their desired username async function onUsernameSubmit(e) diff --git a/client/public/lobby/index.html b/client/public/lobby/index.html index dd8489a..c994497 100644 --- a/client/public/lobby/index.html +++ b/client/public/lobby/index.html @@ -3,11 +3,14 @@ + + + Lobby - + diff --git a/server/src/socket.js b/client/public/lobby/index.js similarity index 100% rename from server/src/socket.js rename to client/public/lobby/index.js diff --git a/server/index.js b/server/index.js index aa98318..4b04fc0 100644 --- a/server/index.js +++ b/server/index.js @@ -1,6 +1,7 @@ const Logger = require('./src/logger.js'); const Server = require('./src/webserver.js'); -const Router = require('./src/router.js') +const Router = require('./src/router.js'); +const Socket = require('./src/socketserver.js'); require('dotenv').config() @@ -10,6 +11,7 @@ async function main() Logger.init(); await Server.init(); + await Socket.init(); await Router.init(); // await Server. diff --git a/server/package-lock.json b/server/package-lock.json index 7914f25..c22ad67 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -4,6 +4,26 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@types/component-emitter": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", + "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==" + }, + "@types/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==" + }, + "@types/cors": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.9.tgz", + "integrity": "sha512-zurD1ibz21BRlAOIKP8yhrxlqKx6L9VCwkB5kMiP6nZAhoF5MvC7qS1qPA7nRcr1GJolfkQC7/EAL4hdYejLtg==" + }, + "@types/node": { + "version": "14.14.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", + "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -18,6 +38,16 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=" + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -45,6 +75,11 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -68,6 +103,15 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -101,6 +145,48 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, + "engine.io": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.0.tgz", + "integrity": "sha512-vW7EAtn0HDQ4MtT5QbmCHF17TaYLONv2/JwdYsq9USPRZVM4zG7WB3k0Nc321z8EuSOlhGokrYlYx4176QhD0A==", + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.0", + "ws": "~7.4.2" + }, + "dependencies": { + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "engine.io-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", + "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "requires": { + "base64-arraybuffer": "0.1.4" + } + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -172,6 +258,11 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "http": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz", + "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==" + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -250,6 +341,11 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -351,6 +447,67 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, + "socket.io": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.0.tgz", + "integrity": "sha512-Aqg2dlRh6xSJvRYK31ksG65q4kmBOqU4g+1ukhPcoT6wNGYoIwSYPlCPuRwOO9pgLUajojGFztl6+V2opmKcww==", + "requires": { + "@types/cookie": "^0.4.0", + "@types/cors": "^2.8.8", + "@types/node": "^14.14.10", + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.1", + "engine.io": "~4.1.0", + "socket.io-adapter": "~2.1.0", + "socket.io-parser": "~4.0.3" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "socket.io-adapter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", + "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==" + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -384,6 +541,11 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "ws": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", + "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==" } } } diff --git a/server/package.json b/server/package.json index 9e230c6..c254515 100644 --- a/server/package.json +++ b/server/package.json @@ -15,6 +15,8 @@ "colors": "^1.4.0", "dotenv": "^8.2.0", "express": "^4.17.1", - "moment": "^2.29.1" + "http": "0.0.1-security", + "moment": "^2.29.1", + "socket.io": "^3.1.0" } } diff --git a/server/src/game-registrar.js b/server/src/game-registrar.js index 0566283..ab1f03c 100644 --- a/server/src/game-registrar.js +++ b/server/src/game-registrar.js @@ -54,7 +54,7 @@ function RegisterPlayer(username, ip) ip: ip }; - console.log(`New player registering: ${username}, ${id}`); + Logger.info(`${id}: REGISTERING`); return OnlinePlayers[id]; } diff --git a/server/src/router.js b/server/src/router.js index 11d7dca..c3b909b 100644 --- a/server/src/router.js +++ b/server/src/router.js @@ -144,6 +144,8 @@ function HandleLogin(req, res, next) } } + Logger.info(`NEW USER ID ${user.uid}`); + res.end(JSON.stringify(response)); // Continue to later middleware diff --git a/server/src/socketserver.js b/server/src/socketserver.js new file mode 100644 index 0000000..eefd2ed --- /dev/null +++ b/server/src/socketserver.js @@ -0,0 +1,19 @@ +const Logger = require('./logger.js'); +const WebServer = require('./webserver.js'); + +function init() +{ + const http = require('http').Server(WebServer.App); + const io = require('socket.io')(http); + + io.on('connection', (socket) => { + console.log(socket); + }) + + Logger.info('SOCKET SERVER LISTENING'); +} + + +module.exports = { + init: init +} diff --git a/server/src/webserver.js b/server/src/webserver.js index 0d906b8..f4b0cbc 100644 --- a/server/src/webserver.js +++ b/server/src/webserver.js @@ -3,28 +3,34 @@ const Logger = require('./logger.js'); const Express = require('express'); const BodyParser = require('body-parser'); +let App; +let Port; + async function init() { // Yes all of these should be exported - module.exports.Port = process.env.SERVER_PORT || 8080; - module.exports.App = Express(); + Port = process.env.SERVER_PORT || 8080; + App = Express(); - module.exports.App.use(BodyParser.json()); + App.use(BodyParser.json()); // Will throw if port is in use or if process // has no permission to listen on port x try { - module.exports.App.listen(module.exports.Port, () => { - Logger.info(`WEBSERVER LISTENING ON ${module.exports.Port}`); + App.listen(Port, () => { + Logger.info(`WEB SERVER LISTENING ON ${Port}`); },); } catch (e) { - Logger.panic(`Cannot listen on port ${module.exports.Port}: ${e}`); + Logger.panic(`CANNOT LISTEN ON PORT ${Port}: ${e}`); } } module.exports = { + App: App, + Port: Port, + init: init }