diff --git a/src/Center/Center.ts b/src/Center/Center.ts index 5630a64..250cab0 100644 --- a/src/Center/Center.ts +++ b/src/Center/Center.ts @@ -136,7 +136,6 @@ export default class Center extends SmppSession { close(): Promise { return new Promise((resolve, reject) => { this.logger.log1(`Center-${this.id} closing active connections`); - this.server.close(); this.sessions.forEach((session: any) => { session.close(); }); @@ -145,6 +144,10 @@ export default class Center extends SmppSession { }); } + destroy(): void { + this.server.close(); + } + serialize(): object { return { id: this._id, diff --git a/src/Client/Client.ts b/src/Client/Client.ts index 2059e53..f03f598 100644 --- a/src/Client/Client.ts +++ b/src/Client/Client.ts @@ -73,6 +73,8 @@ export default class Client extends SmppSession { super.defaultMultipleJob = job; } + destroy(): void {} + doConnect(): PersistentPromise { this.connectPromise = new PersistentPromise((resolve, reject) => { if (this.status !== this.STATUSES[0]) { diff --git a/src/SessionManager.ts b/src/SessionManager.ts index 30b7acb..2385b31 100644 --- a/src/SessionManager.ts +++ b/src/SessionManager.ts @@ -41,6 +41,7 @@ export default abstract class SessionManager { return new Promise((resolve, reject) => { this.logger.log1(`Removing session with id ${session.id}`); session.close(); + session.destroy(); this.sessions = this.sessions.filter(s => s.id !== session.id); resolve(); }); diff --git a/src/SmppSession.ts b/src/SmppSession.ts index d8fc9ef..81d8cbe 100644 --- a/src/SmppSession.ts +++ b/src/SmppSession.ts @@ -125,6 +125,8 @@ export default abstract class SmppSession { }); } + abstract destroy(): void; + sendSingle(job: Job): Promise { return this.sendPdu(job.pdu); }