Minor changes and fixes

This commit is contained in:
David Majdandžić
2023-03-27 11:27:13 +02:00
parent 9638917174
commit 21d0e515e8
2 changed files with 48 additions and 8 deletions

View File

@@ -31,6 +31,7 @@ const MESSAGE_SEND_UPDATE_DELAY = process.env.MESSAGE_SEND_UPDATE_DELAY || 500;
// } // }
// }); // });
// TODO: Implement some sort of metrics on frontend by counting the pdus // TODO: Implement some sort of metrics on frontend by counting the pdus
// TODO: Currently clients don't realize they've been disconnected by time out
[ [
'debug', 'debug',
@@ -188,7 +189,7 @@ class ClientSession {
refresh() { refresh() {
this.logger.log1(`Refreshing client with url ${this.url} and id ${this.id}`); this.logger.log1(`Refreshing client with url ${this.url} and id ${this.id}`);
let status = this.status; let status = this.status;
this.close().catch(err => this.logger.log1(err)); this.close().catch(err => err);
if (status === ClientSessionStatus.CONNECTED) { if (status === ClientSessionStatus.CONNECTED) {
this.connect().catch(err => this.logger.log1(err)); this.connect().catch(err => this.logger.log1(err));
} }
@@ -1677,7 +1678,7 @@ centerSessionManager.startup();
// let session = clientSessionManager.createSession('smpp://localhost:7001', 'test', 'test'); // let session = clientSessionManager.createSession('smpp://localhost:7001', 'test', 'test');
// let server = centerSessionManager.createSession(7001, 'test', 'test'); // let server = centerSessionManager.createSession(7001, 'test', 'test');
let session = clientSessionManager.getSession(0); let session = clientSessionManager.getSession(1);
let server = centerSessionManager.getSession(1); let server = centerSessionManager.getSession(1);
session.connect() session.connect()

View File

@@ -2,19 +2,58 @@ const WebSocket = require('ws');
const WS_SERVER_PORT = process.env.WS_SERVER_PORT || 8191; const WS_SERVER_PORT = process.env.WS_SERVER_PORT || 8191;
class Metrics {
static interestingMetrics = ['submit_sm', 'deliver_sm'];
metrics = {};
constructor() {
}
processPdu(pdu) {
if (Metrics.interestingMetrics.indexOf(pdu.command) !== -1) {
let timestamp = Math.floor(new Date().getTime() / 1000);
if (!!!this.metrics[timestamp]) {
this.metrics[timestamp] = {};
}
if (!!!this.metrics[timestamp][pdu.command]) {
this.metrics[timestamp][pdu.command] = 0;
}
this.metrics[timestamp][pdu.command] += 1;
}
}
}
let clientMetrics = new Metrics();
let centerMetrics = new Metrics();
const ws = new WebSocket(`ws://localhost:${WS_SERVER_PORT}`); const ws = new WebSocket(`ws://localhost:${WS_SERVER_PORT}`);
const ws2 = new WebSocket(`ws://localhost:${WS_SERVER_PORT}`);
ws.on('open', () => { ws.on('open', () => {
console.log('WebSocket connection established'); console.log('WebSocket connection established');
ws.send("client:1"); ws.send("client:0");
}); });
ws.on('message', (data) => { ws.on('message', (data) => {
console.log(String(data)); data = JSON.parse(data);
if (data.type === 'pdu') {
clientMetrics.processPdu(data.value);
}
}); });
const ws2 = new WebSocket(`ws://localhost:${WS_SERVER_PORT}`);
ws2.on('open', () => { ws2.on('open', () => {
console.log('WebSocket connection established'); console.log('WebSocket connection established');
ws.send("center:1"); ws2.send("center:0");
}); });
ws2.on('message', (data) => { ws2.on('message', (data) => {
console.log(String(data)); data = JSON.parse(data);
}); if (data.type === 'pdu') {
centerMetrics.processPdu(data.value);
}
});
setInterval(() => {
console.log(clientMetrics.metrics);
console.log(centerMetrics.metrics);
console.log("");
}, 500);