【发布时间】:2020-11-26 04:17:13
【问题描述】:
我有 4 个 SMSC IP,我随机连接它们。如果第一个 SMSC IP 失败,有没有办法连接到第 2、第 3 或第 4 个?
这是我当前的代码。
const smsc = [
'192.168.1.1',
'192.168.1.2',
'192.168.1.3',
'192.168.1.4',
];
const port = 1234
//iterate SMSC IP
var smsc_ip = smsc[Math.floor(Math.random() * smsc.length)];
var session = new smpp.Session({host: smsc_ip, port: port});
var didConnect = false;
session.on('connect', function(){
didConnect = true;
session.bind_transceiver({
system_id: 'system_id',
password: 'password',
system_type: "SENDER",
interface_version: 1,
}, function(pdu) {
console.log('pdu status', lookupPDUStatusKey(pdu.command_status));
if (pdu.command_status == 0) {
console.log('Successfully bound')
}
});
});
session.on('close', function(){
console.log('smpp disconnected')
if (didConnect) {
connectSMPP();
}
});
session.on('error', function(error){
console.log('smpp error', error)
didConnect = false;
});
function connectSMPP () {
// connect to another SMSC IP?
console.log('smpp reconnecting');
session.connect();
}
function lookupPDUStatusKey(pduCommandStatus) {
for (var k in smpp.errors) {
if (smpp.errors[k] == pduCommandStatus) {
return k
}
}
}
如果会话断开,我有一个 connectSMPP 函数可以重新连接会话。我是否还应该在 connectSMPP 中包含一个新会话来初始化一个新会话并使用所有其余的 SMSC IP,然后在所有 SMSC IP 都不起作用时退出?
【问题讨论】:
标签: node.js sms-gateway