From 679471afe352c29942acccd64fc2e6c580a0c84b Mon Sep 17 00:00:00 2001 From: Ali Farhadi Date: Sun, 26 Jun 2016 07:57:13 +0430 Subject: [PATCH] Improving connect API using connection url. --- lib/smpp.js | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/lib/smpp.js b/lib/smpp.js index 9c7d0a5..2be84c2 100644 --- a/lib/smpp.js +++ b/lib/smpp.js @@ -1,6 +1,7 @@ var net = require('net'), - tls = require('tls'), + tls = require('tls'), util = require('util'), + parse = require('url').parse, defs = require('./defs'), PDU = require('./pdu').PDU, EventEmitter = require('events').EventEmitter; @@ -19,9 +20,9 @@ function Session(options) { } else { this.port = options.port; this.host = options.host; - if (options.isTls) { + if (options.tls) { transport = tls; - } + } this.socket = transport.connect(this.port, this.host); this.socket.on('connect', function() { self.emit('connect'); @@ -175,11 +176,24 @@ exports.createServer = function() { return new Server(arguments[0], arguments[1]); }; -exports.connect = exports.createSession = function(host, port, isTls) { +exports.connect = exports.createSession = function(url) { + var options; + if (argumens.length > 1) { + options = { + host: arguments[0], + port: arguments[1] + }; + } else if (typeof url == 'string') { + options = parse(url); + options.host = options.slashes ? options.hostname : url; + options.tls = options.protocol == 'ssmpp:'; + } else { + options = url; + } return new Session({ - host: host || 'localhost', - port: port || 2775, // Default SMPP port is 2775 - isTls: isTls || false + host: options.host || 'localhost', + port: options.port || (options.tls ? 3550 : 2775), + tls: options.tls || false }); };