Fix session tracking and logging in center.js
This commit is contained in:
15
center.js
15
center.js
@@ -74,7 +74,9 @@ function startInterval(session, sessionLogger, rxMetrics) {
|
|||||||
failed++;
|
failed++;
|
||||||
});
|
});
|
||||||
|
|
||||||
rxMetrics.AddEvent();
|
if (rxMetrics) {
|
||||||
|
rxMetrics.AddEvent();
|
||||||
|
}
|
||||||
sent++;
|
sent++;
|
||||||
inFlight++;
|
inFlight++;
|
||||||
} else {
|
} else {
|
||||||
@@ -93,6 +95,7 @@ function startInterval(session, sessionLogger, rxMetrics) {
|
|||||||
logger.info(`Staring server on port ${options.port}...`);
|
logger.info(`Staring server on port ${options.port}...`);
|
||||||
let sessionid = 1;
|
let sessionid = 1;
|
||||||
let messageid = 0;
|
let messageid = 0;
|
||||||
|
const sessions = [];
|
||||||
const server = smpp.createServer(
|
const server = smpp.createServer(
|
||||||
{
|
{
|
||||||
debug: options.debug,
|
debug: options.debug,
|
||||||
@@ -105,7 +108,8 @@ const server = smpp.createServer(
|
|||||||
|
|
||||||
session.on("bind_transceiver", function (pdu) {
|
session.on("bind_transceiver", function (pdu) {
|
||||||
if (pdu.system_id === options.systemid && pdu.password === options.password) {
|
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());
|
session.send(pdu.response());
|
||||||
startInterval(session, sessionLogger);
|
startInterval(session, sessionLogger);
|
||||||
} else {
|
} else {
|
||||||
@@ -207,8 +211,13 @@ const server = smpp.createServer(
|
|||||||
});
|
});
|
||||||
|
|
||||||
session.on("close", function () {
|
session.on("close", function () {
|
||||||
sessionLogger.warn(`Session closed`);
|
sessions.splice(sessions.indexOf(session), 1);
|
||||||
|
sessionLogger.warn(`Session closed, now ${sessions.length}`);
|
||||||
session.close();
|
session.close();
|
||||||
|
if (sessions.length === 0) {
|
||||||
|
sessionLogger.info("No more sessions, stopping sending timer");
|
||||||
|
sendTimer.clearInterval();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
session.on("error", function (err) {
|
session.on("error", function (err) {
|
||||||
sessionLogger.error(`Fatal error ${err}`);
|
sessionLogger.error(`Fatal error ${err}`);
|
||||||
|
Reference in New Issue
Block a user