Enable client connecting

This commit is contained in:
David Majdandžić
2023-03-28 02:32:50 +02:00
parent fae2729856
commit f47d9b05cd
2 changed files with 11 additions and 42 deletions

View File

@@ -103,14 +103,16 @@ export class Client implements SmppSession {
}
this.session.bind_transceiver({
system_id: this.username, password: this.password,
system_id: this._username, password: this._password,
}, this.eventBindReply.bind(this));
});
return this.bindPromise;
}
connectAndBind(): Promise<void> {
return this.connect().then(this.bind.bind(this));
return this.connect().then(this.bind.bind(this), (error) => {
this.logger.log1(`Client-${this.id} connectAndBind failed: ${error}`);
});
}
serialize(): string {
@@ -160,10 +162,10 @@ export class Client implements SmppSession {
this.eventEmitter.emit(Client.ClientEvents.ANY_PDU, pdu);
}
private eventSessionError(): void {
private eventSessionError(pdu: any): void {
this.logger.log1(`Client-${this.id} error on ${this._url}`);
this.setStatus(ClientStatus.NOT_CONNECTED);
this.rejectPromises();
this.rejectPromises(pdu);
}
private eventSessionClose(): void {
@@ -183,17 +185,17 @@ export class Client implements SmppSession {
this.logger.log1(`Client-${this.id} bind failed to ${this.url}`);
this.setStatus(ClientStatus.CONNECTED);
if (this.bindPromise) {
this.bindPromise.reject();
this.bindPromise.reject(pdu);
}
}
}
private rejectPromises(): void {
private rejectPromises(err?: any): void {
if (this.connectPromise) {
this.connectPromise.reject();
this.connectPromise.reject(err);
}
if (this.bindPromise) {
this.bindPromise.reject();
this.bindPromise.reject(err);
}
}

View File

@@ -22,44 +22,11 @@ const MESSAGE_SEND_UPDATE_DELAY: number = Number(process.env.MESSAGE_SEND_UPDATE
// TODO: Add support for encodings
// TODO: Implement some sort of metrics on frontend by counting the pdus
[
'debug',
'log',
'warn',
'error'
].forEach((methodName: string) => {
// @ts-ignore
const originalLoggingMethod: object = console[methodName];
// @ts-ignore
console[methodName] = (firstArgument, ...otherArguments) => {
// @ts-ignore
const originalPrepareStackTrace = Error.prepareStackTrace;
// @ts-ignore
Error.prepareStackTrace = (_, stack) => stack;
// @ts-ignore
const callee = new Error().stack[2];
// @ts-ignore
Error.prepareStackTrace = originalPrepareStackTrace;
// @ts-ignore
const relativeFileName = path.relative(process.cwd(), callee.getFileName());
// @ts-ignore
const prefix = `${relativeFileName}:${callee.getLineNumber()}:`;
// @ts-ignore
if (typeof firstArgument === 'string') {
// @ts-ignore
originalLoggingMethod(prefix + ' ' + firstArgument, ...otherArguments);
} else {
// @ts-ignore
originalLoggingMethod(prefix, firstArgument, ...otherArguments);
}
};
});
let logger = new Logger("main");
import {Client} from "./client";
let client: Client = new Client(0, "smpp://localhost:7001", "test", "test");
let client: Client = new Client(0, "smpp://localhost:7000", "test", "test");
client.connectAndBind().then(() => {
console.log("POGGIES");
});