From 19ae4307795bf426fab059fd11f26ae5e216cfcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Majdand=C5=BEi=C4=87?= Date: Tue, 12 Dec 2023 09:14:47 +0100 Subject: [PATCH] Fix session tracking and logging in center.js --- center.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/center.js b/center.js index 953d6e0..1691c3d 100644 --- a/center.js +++ b/center.js @@ -74,7 +74,9 @@ function startInterval(session, sessionLogger, rxMetrics) { failed++; }); - rxMetrics.AddEvent(); + if (rxMetrics) { + rxMetrics.AddEvent(); + } sent++; inFlight++; } else { @@ -93,6 +95,7 @@ function startInterval(session, sessionLogger, rxMetrics) { logger.info(`Staring server on port ${options.port}...`); let sessionid = 1; let messageid = 0; +const sessions = []; const server = smpp.createServer( { debug: options.debug, @@ -105,7 +108,8 @@ const server = smpp.createServer( session.on("bind_transceiver", function (pdu) { if (pdu.system_id === options.systemid && pdu.password === options.password) { - sessionLogger.info("Client connected"); + sessions.push(session); + sessionLogger.info(`Client connected, currently: ${sessions.length}`); session.send(pdu.response()); startInterval(session, sessionLogger); } else { @@ -207,8 +211,13 @@ const server = smpp.createServer( }); session.on("close", function () { - sessionLogger.warn(`Session closed`); + sessions.splice(sessions.indexOf(session), 1); + sessionLogger.warn(`Session closed, now ${sessions.length}`); session.close(); + if (sessions.length === 0) { + sessionLogger.info("No more sessions, stopping sending timer"); + sendTimer.clearInterval(); + } }); session.on("error", function (err) { sessionLogger.error(`Fatal error ${err}`);