From e0fd3a5c31f3e47ccc93fa723cabf9064805a452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Majdand=C5=BEi=C4=87?= Date: Wed, 5 Apr 2023 19:53:08 +0200 Subject: [PATCH] Minor fixes --- src/Center/Center.ts | 2 ++ src/Client/Client.ts | 3 +-- src/HttpServer/HttpServer.ts | 2 +- .../Postprocessor/Center/DebugPduProcessor.ts | 2 +- .../Postprocessor/Center/EchoPduProcessor.ts | 14 +++++++------- src/SmppSession.ts | 1 + src/main.ts | 11 ++++++----- 7 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/Center/Center.ts b/src/Center/Center.ts index 484f6ed..316d640 100644 --- a/src/Center/Center.ts +++ b/src/Center/Center.ts @@ -3,6 +3,7 @@ import Job from "../Job/Job"; import Logger from "../Logger"; import PduProcessor from "../PDUProcessor/PduProcessor"; import BindTranscieverReplyProcessor from "../PDUProcessor/Postprocessor/Center/BindTranscieverReplyProcessor"; +import DebugPduProcessor from "../PDUProcessor/Postprocessor/Center/DebugPduProcessor"; import SubmitSmReplyProcessor from "../PDUProcessor/Postprocessor/Center/SubmitSmReplyProcessor"; import ProcessorManager from "../PDUProcessor/ProcessorManager"; import SmppSession from "../SmppSession"; @@ -41,6 +42,7 @@ export default class Center extends SmppSession { ProcessorManager.attachProcessor(this, ProcessorManager.getProcessor(SubmitSmReplyProcessor.name)); ProcessorManager.attachProcessor(this, ProcessorManager.getProcessor(BindTranscieverReplyProcessor.name)); + ProcessorManager.attachProcessor(this, ProcessorManager.getProcessor(DebugPduProcessor.name)); this.logger = new Logger(`Center-${id}`); diff --git a/src/Client/Client.ts b/src/Client/Client.ts index 6f9b306..4ac9c3d 100644 --- a/src/Client/Client.ts +++ b/src/Client/Client.ts @@ -26,7 +26,6 @@ export default class Client extends SmppSession { _password: string; _id: number; _status: string = this.STATUSES[0]; - pduProcessors: PduProcessor[] = []; readonly logger: Logger; private session?: any; private connectPromise: PersistentPromise | null = null; @@ -197,7 +196,7 @@ export default class Client extends SmppSession { }, this.eventSessionConnected.bind(this)); this.session.on('error', this.eventSessionError.bind(this)); this.session.on('close', this.eventSessionClose.bind(this)); - this.session.on('pdu', this.eventAnyPdu.bind(this)); + this.session.on('pdu', this.eventAnyPdu.bind(this, this.session)); }); } diff --git a/src/HttpServer/HttpServer.ts b/src/HttpServer/HttpServer.ts index 9e6eebd..ad3b5c4 100644 --- a/src/HttpServer/HttpServer.ts +++ b/src/HttpServer/HttpServer.ts @@ -11,7 +11,7 @@ const zlib = require("zlib"); const SERVER_PORT: number = Number(process.env.SERVER_PORT) || 8190; -export class HttpServer { +export default class HttpServer { private readonly clientRequestHandler: RequestHandler; private readonly centerRequestHandler: RequestHandler; diff --git a/src/PDUProcessor/Postprocessor/Center/DebugPduProcessor.ts b/src/PDUProcessor/Postprocessor/Center/DebugPduProcessor.ts index 5589064..e7651e6 100644 --- a/src/PDUProcessor/Postprocessor/Center/DebugPduProcessor.ts +++ b/src/PDUProcessor/Postprocessor/Center/DebugPduProcessor.ts @@ -8,7 +8,7 @@ export default class DebugPduProcessor extends Postprocessor { processPdu(session: any, pdu: any, entity?: SmppSession | undefined): Promise { return new Promise((resolve, reject) => { - if (pdu.response) { + if (!!pdu.command && pdu.command === "submit_sm") { session.send(pdu.response(), (replyPdu: any) => { resolve(replyPdu); }); diff --git a/src/PDUProcessor/Postprocessor/Center/EchoPduProcessor.ts b/src/PDUProcessor/Postprocessor/Center/EchoPduProcessor.ts index 1dac1c9..cdb46d3 100644 --- a/src/PDUProcessor/Postprocessor/Center/EchoPduProcessor.ts +++ b/src/PDUProcessor/Postprocessor/Center/EchoPduProcessor.ts @@ -10,8 +10,8 @@ export default class EchoPduProcessor extends Postprocessor { processPdu(session: any, pdu: any, entity?: SmppSession | undefined): Promise { return new Promise((resolve, reject) => { - let promises = []; - if (pdu.response) { + if (!!pdu.command && pdu.command === "submit_sm") { + let promises = []; let replyPromise = session.send(pdu.response()); let sendPromise = session.send(new smpp.PDU('deliver_sm', { source_addr: pdu.destination_addr, @@ -20,12 +20,12 @@ export default class EchoPduProcessor extends Postprocessor { })); promises.push(replyPromise); promises.push(sendPromise); + Promise.all(promises).then((replyPdus: any) => { + resolve(replyPdus); + }).catch((error: any) => { + reject(error); + }); } - Promise.all(promises).then((replyPdus: any) => { - resolve(replyPdus); - }).catch((error: any) => { - reject(error); - }); }); } } \ No newline at end of file diff --git a/src/SmppSession.ts b/src/SmppSession.ts index f2c6894..9102def 100644 --- a/src/SmppSession.ts +++ b/src/SmppSession.ts @@ -186,6 +186,7 @@ export default abstract class SmppSession { eventAnyPdu(session: any, pdu: PDU): Promise { if (!!pdu) { this.eventEmitter.emit(this.EVENT.ANY_PDU, pdu); + // console.log("IS PDU TIME"); this.logger.log6(pdu); this.processors.Postprocessor.forEach((processor: PduProcessor) => processor.processPdu(session, pdu, this)); } diff --git a/src/main.ts b/src/main.ts index aa3dbcc..1776f2e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,7 @@ import CenterSessionManager from "./Center/CenterSessionManager"; import Client from "./Client/Client"; import ClientSessionManager from "./Client/ClientSessionManager"; +import HttpServer from "./HttpServer/HttpServer"; import Logger from "./Logger"; import ProcessorManager from "./PDUProcessor/ProcessorManager"; import WSServer from "./WS/WSServer"; @@ -12,9 +13,9 @@ let logger = new Logger("main"); new ProcessorManager(); let clientManager: ClientSessionManager = new ClientSessionManager(); let centerManager: CenterSessionManager = new CenterSessionManager(); -let wss: WSServer = new WSServer([clientManager, centerManager]); -// let httpServer: HttpServer = new HttpServer(clientManager, centerManager); +let wss: WSServer = new WSServer([clientManager, centerManager]); +let httpServer: HttpServer = new HttpServer(clientManager, centerManager); function cleanup(): void { logger.log1("Cleaning up..."); @@ -39,9 +40,9 @@ async function main() { // console.log(ProcessorManager.getProcessorsForType(Client.name)); // ProcessorManager.attachProcessor(client, ProcessorManager.getProcessor(SourceEnumeratorProcessor.name)); - await client.doConnect(); - await client.doBind(); - client.sendMultipleDefault(); + // await client.doConnect(); + // await client.doBind(); + // client.sendMultipleDefault(); console.log("OK"); }