Fix issue where closing a center's connections would kill it
This commit is contained in:
@@ -136,7 +136,6 @@ export default class Center extends SmppSession {
|
|||||||
close(): Promise<void> {
|
close(): Promise<void> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
this.logger.log1(`Center-${this.id} closing active connections`);
|
this.logger.log1(`Center-${this.id} closing active connections`);
|
||||||
this.server.close();
|
|
||||||
this.sessions.forEach((session: any) => {
|
this.sessions.forEach((session: any) => {
|
||||||
session.close();
|
session.close();
|
||||||
});
|
});
|
||||||
@@ -145,6 +144,10 @@ export default class Center extends SmppSession {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
destroy(): void {
|
||||||
|
this.server.close();
|
||||||
|
}
|
||||||
|
|
||||||
serialize(): object {
|
serialize(): object {
|
||||||
return {
|
return {
|
||||||
id: this._id,
|
id: this._id,
|
||||||
|
@@ -73,6 +73,8 @@ export default class Client extends SmppSession {
|
|||||||
super.defaultMultipleJob = job;
|
super.defaultMultipleJob = job;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
destroy(): void {}
|
||||||
|
|
||||||
doConnect(): PersistentPromise {
|
doConnect(): PersistentPromise {
|
||||||
this.connectPromise = new PersistentPromise((resolve, reject) => {
|
this.connectPromise = new PersistentPromise((resolve, reject) => {
|
||||||
if (this.status !== this.STATUSES[0]) {
|
if (this.status !== this.STATUSES[0]) {
|
||||||
|
@@ -41,6 +41,7 @@ export default abstract class SessionManager {
|
|||||||
return new Promise<void>((resolve, reject) => {
|
return new Promise<void>((resolve, reject) => {
|
||||||
this.logger.log1(`Removing session with id ${session.id}`);
|
this.logger.log1(`Removing session with id ${session.id}`);
|
||||||
session.close();
|
session.close();
|
||||||
|
session.destroy();
|
||||||
this.sessions = this.sessions.filter(s => s.id !== session.id);
|
this.sessions = this.sessions.filter(s => s.id !== session.id);
|
||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
|
@@ -125,6 +125,8 @@ export default abstract class SmppSession {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
abstract destroy(): void;
|
||||||
|
|
||||||
sendSingle(job: Job): Promise<object> {
|
sendSingle(job: Job): Promise<object> {
|
||||||
return this.sendPdu(job.pdu);
|
return this.sendPdu(job.pdu);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user