smppjs
Version:
Modern approach to smpp protocol.
90 lines • 2.64 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const session_1 = __importDefault(require("./session"));
class Client {
get debug() {
return this._debug;
}
get connected() {
return this.session.connected;
}
constructor({ interfaceVersion = 80, enquireLink, secure = {
tls: false,
unsafeBuffer: false,
secureOptions: undefined,
}, timeout = 3000, debug = false, }) {
this._debug = debug;
this._enquireLink = enquireLink;
this.session = new session_1.default(interfaceVersion, this.debug, timeout, secure);
}
connect({ url }) {
const [host, portStr] = url.split(':');
if (!host || !portStr) {
throw new Error('Invalid URL.');
}
const port = parseInt(portStr, 10);
if (isNaN(port)) {
throw new Error('Invalid port.');
}
this.session.connect({ host, port });
if (this._enquireLink.auto && this._enquireLink.interval) {
this.enquireLink();
this.autoEnquireLink(this._enquireLink.interval);
}
}
disconnect() {
return this.session.disconnect();
}
on(eventName, callback) {
this.session.on(eventName, callback);
}
bindTransceiver(params) {
return this.session.bindTransceiver(params);
}
bindReceiver(params) {
return this.session.bindReceiver(params);
}
bindTransmitter(params) {
return this.session.bindTransmitter(params);
}
submitSm(params) {
return this.session.submitSm(params);
}
dataSm(params) {
return this.session.dataSm(params);
}
querySm(params) {
return this.session.querySm(params);
}
cancelSm(params) {
return this.session.cancelSm(params);
}
replaceSm(params) {
return this.session.replaceSm(params);
}
deliverSmResp(params) {
return this.session.deliverSmResp(params);
}
enquireLink() {
return this.session.enquireLink();
}
unbind() {
return this.session.unbind();
}
autoEnquireLink(interval = 20000) {
const scheduleNext = () => {
setTimeout(() => {
if (this.connected) {
this.enquireLink();
scheduleNext();
}
}, interval);
};
scheduleNext();
}
}
exports.default = Client;
//# sourceMappingURL=client.js.map