From d4002163af49036ee3f1f2f359f63365b9d2d5fb Mon Sep 17 00:00:00 2001 From: srgooglo Date: Thu, 5 May 2022 09:44:28 +0200 Subject: [PATCH 1/8] initialize server --- src/bin/server.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/bin/server.js b/src/bin/server.js index 976b85f..b4a76ea 100755 --- a/src/bin/server.js +++ b/src/bin/server.js @@ -4,7 +4,9 @@ const corenode = require("corenode") corenode.runInNewRuntime(() => { const server = require("../server/index.js") - new server({ + const instance = new server({ id: process.env.serverID, }) + + instance.initialize() }) \ No newline at end of file From a68cdb1ffec4fc86946f936b7c2ece6a04a27179 Mon Sep 17 00:00:00 2001 From: srgooglo Date: Thu, 5 May 2022 09:45:28 +0200 Subject: [PATCH 2/8] use Hyper-Express lib --- src/server/index.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/server/index.js b/src/server/index.js index 9147a83..acaef43 100755 --- a/src/server/index.js +++ b/src/server/index.js @@ -2,7 +2,7 @@ const path = require("path") const fs = require("fs") const net = require("corenode/net") -const http = require("nanoexpress") +const HyperExpress = require("hyper-express") const io = require("socket.io") const packageJSON = require(path.resolve(module.path, "../../package.json")) @@ -26,7 +26,6 @@ global.DEFAULT_HEADERS = { } const defaultMiddlewares = [ - require("@nanoexpress/middleware-body-parser/cjs")(), require('cors')({ "origin": "*", "methods": DEFAULT_HEADERS["Access-Control-Allow-Methods"], @@ -59,7 +58,7 @@ class Server { this.WSAddress = `ws://${LOCALHOST_ADDRESS}:${this.WSListenPort}` //* set server basics - this.httpInterface = global.httpInterface = http() + this.httpInterface = global.httpInterface = new HyperExpress.Server() this.wsInterface = global.wsInterface = { io: new io.Server(this.WSListenPort), map: {}, @@ -120,7 +119,7 @@ class Server { // initialize http server await this.httpInterface.listen(this.HTTPlistenPort, this.params.listen ?? "0.0.0.0") - console.log(`✅ Ready on port ${this.HTTPlistenPort}!`) + console.log(`✅ Server is up and running!`) } handleWSClientConnection = async (socket) => { From 56f3d95423ebb3702b530466d416fa0093fbc781 Mon Sep 17 00:00:00 2001 From: srgooglo Date: Thu, 5 May 2022 09:46:26 +0200 Subject: [PATCH 3/8] output server info --- src/server/index.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/server/index.js b/src/server/index.js index acaef43..fda4c21 100755 --- a/src/server/index.js +++ b/src/server/index.js @@ -119,7 +119,9 @@ class Server { // initialize http server await this.httpInterface.listen(this.HTTPlistenPort, this.params.listen ?? "0.0.0.0") + // output server info console.log(`✅ Server is up and running!`) + this.consoleOutputServerInfo() } handleWSClientConnection = async (socket) => { @@ -274,6 +276,18 @@ class Server { } }) } + + consoleOutputServerInfo = () => { + console.log(`🌐 Server info:`) + console.table({ + "ID": this.id, + "Version": LINEBRIDGE_SERVER_VERSION, + "HTTP address": this.HTTPAddress, + "WS address": this.WSAddress, + "WS port": this.WSListenPort, + "HTTP port": this.HTTPlistenPort, + }) + } } module.exports = Server \ No newline at end of file From c7a712e25f5460127d7e95d5e139a8a05f2f4114 Mon Sep 17 00:00:00 2001 From: srgooglo Date: Thu, 5 May 2022 09:46:50 +0200 Subject: [PATCH 4/8] added close event --- src/server/index.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/server/index.js b/src/server/index.js index fda4c21..836b924 100755 --- a/src/server/index.js +++ b/src/server/index.js @@ -122,6 +122,11 @@ class Server { // output server info console.log(`✅ Server is up and running!`) this.consoleOutputServerInfo() + + // handle exit events + process.on("SIGTERM", this.cleanupProcess) + process.on("SIGINT", this.cleanupProcess) + process.on("exit", this.cleanupProcess) } handleWSClientConnection = async (socket) => { @@ -288,6 +293,13 @@ class Server { "HTTP port": this.HTTPlistenPort, }) } + + cleanupProcess = () => { + console.log("🔴 Stopping server...") + + this.httpInterface.close() + this.wsInterface.io.close() + } } module.exports = Server \ No newline at end of file From 32b43f28080dbaba2538096c8061c51b61c7ac51 Mon Sep 17 00:00:00 2001 From: srgooglo Date: Thu, 5 May 2022 09:48:07 +0200 Subject: [PATCH 5/8] update deps --- package.json | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 4fd5bad..7901e90 100755 --- a/package.json +++ b/package.json @@ -19,19 +19,18 @@ "license": "MIT", "dependencies": { "@corenode/utils": "0.28.26", - "@nanoexpress/middleware-body-parser": "1.2.2", - "axios": "0.26.0", + "axios": "0.27.2", "cors": "2.8.5", + "hyper-express": "^6.1.1", "md5": "2.3.0", - "nanoexpress": "5.1.2", - "nanoid": "3.3.1", - "socket.io-client": "4.4.1", - "socket.io": "4.4.1", "morgan": "1.10.0", + "nanoid": "3.3.4", + "socket.io": "4.5.0", + "socket.io-client": "4.5.0", "uuid": "8.3.2" }, "devDependencies": { "corenode": "^0.28.26", "mocha": "^9.1.3" } -} +} \ No newline at end of file From 3c20bd16aaf5433984e178833f8a5f840a96ed32 Mon Sep 17 00:00:00 2001 From: srgooglo Date: Thu, 5 May 2022 09:50:08 +0200 Subject: [PATCH 6/8] update default `WSListenPort` to 3020 --- src/server/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/index.js b/src/server/index.js index 836b924..0163085 100755 --- a/src/server/index.js +++ b/src/server/index.js @@ -50,7 +50,7 @@ class Server { this.headers = { ...DEFAULT_HEADERS, ...this.params.headers } this.endpointsMap = {} - this.WSListenPort = this.params.wsPort ?? 3011 + this.WSListenPort = this.params.wsPort ?? 3020 this.HTTPlistenPort = this.params.port ?? 3010 // TODO: Handle HTTPS and WSS From 14f7a900bed2ea794189839e766bc6f43b33db95 Mon Sep 17 00:00:00 2001 From: srgooglo Date: Thu, 5 May 2022 09:51:59 +0200 Subject: [PATCH 7/8] " --- .DS_Store | Bin 6148 -> 6148 bytes src/server/index.js | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.DS_Store b/.DS_Store index 5b47d9df3fb4d5c2a5550607161a3e24602a7610..a8cff0e192118bcfcb7e93f7329556f41f663eb5 100644 GIT binary patch delta 231 zcmZoMXfc@JFDk&mz`)4B0HjhG@)+_NQh>DH#>C~!sUR6X20eykplA`YEJGGUF;Fbe zGbcYeDJMS(s1Bso5s3Bvg8`7mz`z33o6eBQP=cmzJ+ivVJS^3sTribD)#+eY0PUMR zfkl3@CtKF!k8IPJSr|$tpJ9`n?90ld$i`60Py%#MF_0`qHJkA#$n44M*dsRK I=lIJH0JnrXPyhe` delta 563 zcmZoMXfc@JFDSvlz`)4BAi$85ZWx@LpIfk5kYhD7qr~I_mTFEGh7^WOhGK@2Nv!hq za1Kl*P$v*{a{&psTyDOLOHxjL5>SleZk+z@iH?UIQRP$c$`@onTmjSrbXNk1<@}-28fkPiwE~!F-BG1H$LTs7DS7R)Gl+hZis;G9)u( z1IcuT$-1mD`uxB!No6QvCD?Bv3v3YR Date: Thu, 5 May 2022 09:54:34 +0200 Subject: [PATCH 8/8] bump version --- .corenode.json | 2 +- package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.corenode.json b/.corenode.json index 304d7b2..13bf1a8 100755 --- a/.corenode.json +++ b/.corenode.json @@ -1,4 +1,4 @@ { - "version": "0.10.14", + "version": "0.11.0", "fixedMainScript": "./client/index.js" } diff --git a/package.json b/package.json index 7901e90..8c878f6 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "linebridge", - "version": "0.10.14", + "version": "0.11.0", "description": "A simple, fast, and powerful REST API interface library", "author": "RageStudio", "main": "./dist/client/index.js", @@ -33,4 +33,4 @@ "corenode": "^0.28.26", "mocha": "^9.1.3" } -} \ No newline at end of file +}