From dd49fa3ea6db5296a0963cf1c8645600abe9cfae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A5var=20Aamb=C3=B8=20Fosstveit?= Date: Wed, 18 Mar 2020 00:51:36 +0100 Subject: [PATCH] Add stats output from interactive client --- server/lib/interactiveClient.js | 8 ++++++++ server/lib/interactiveServer.js | 24 +++++++++++++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/server/lib/interactiveClient.js b/server/lib/interactiveClient.js index eac4764..c75e377 100644 --- a/server/lib/interactiveClient.js +++ b/server/lib/interactiveClient.js @@ -14,6 +14,14 @@ module.exports = async function() socket.pipe(process.stdout); socket.on('connect', () => process.stdin.setRawMode(true)); + socket.on('close', () => process.exit(0)); socket.on('exit', () => socket.end()); + + if (process.argv && process.argv[2] === '--stats') + { + await socket.write('stats\n'); + + socket.end(); + } }; diff --git a/server/lib/interactiveServer.js b/server/lib/interactiveServer.js index 3954fee..6256d06 100644 --- a/server/lib/interactiveServer.js +++ b/server/lib/interactiveServer.js @@ -32,9 +32,6 @@ class Interactive openCommandConsole() { - this.log('\n[opening Readline Command Console...]'); - this.log('type help to print available commands'); - const cmd = readline.createInterface( { input : this._socket, @@ -162,6 +159,13 @@ class Interactive break; } + case 'stats': + { + this.log(`rooms:${global.rooms.size}\npeers:${global.peers.size}`); + + break; + } + case 'dumpRooms': { for (const room of global.rooms.values()) @@ -572,12 +576,22 @@ class Interactive log(msg) { - this._socket.write(`${colors.green(msg)}\n`); + try + { + this._socket.write(`${colors.green(msg)}\n`); + } + catch (error) + {} } error(msg) { - this._socket.write(`${colors.red.bold('ERROR: ')}${colors.red(msg)}\n`); + try + { + this._socket.write(`${colors.red.bold('ERROR: ')}${colors.red(msg)}\n`); + } + catch (error) + {} } }