From e35b30518956e187f12b347ff67dc98f12372171 Mon Sep 17 00:00:00 2001 From: Julius Knorr Date: Wed, 11 Sep 2024 17:42:11 +0200 Subject: [PATCH] fix: Properly close connections when process terminates Signed-off-by: Julius Knorr --- websocket_server/ServerManager.js | 4 ++++ websocket_server/main.js | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/websocket_server/ServerManager.js b/websocket_server/ServerManager.js index 99ba78e..dad3f54 100644 --- a/websocket_server/ServerManager.js +++ b/websocket_server/ServerManager.js @@ -21,6 +21,7 @@ export default class ServerManager { constructor(config) { this.config = config + this.closing = false this.tokenGenerator = new SharedTokenGenerator() this.apiService = new ApiService(this.tokenGenerator) this.storageManager = StorageManager.create(this.config.storageStrategy, this.apiService) @@ -63,9 +64,12 @@ export default class ServerManager { } async gracefulShutdown() { + if (this.closing) return + this.closing = true console.log('Received shutdown signal, saving all data...') try { await this.roomDataManager.removeAllRoomData() + this.socketManager.io.close() console.log('Closing server...') this.server.close(() => { console.log('HTTP server closed.') diff --git a/websocket_server/main.js b/websocket_server/main.js index b2d83a2..2014c27 100644 --- a/websocket_server/main.js +++ b/websocket_server/main.js @@ -19,7 +19,7 @@ const { STORAGE_STRATEGY = 'lru', } = process.env -const FORCE_CLOSE_TIMEOUT = 60 * 60 * 1000 +const FORCE_CLOSE_TIMEOUT = 60 * 1000 async function main() { try {