【问题标题】:How to connect to multiple SMSC IP如何连接多个 SMSC IP
【发布时间】: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


    【解决方案1】:

    尝试将您的活动会话保存到主列表中,然后在主线程外添加查询链接功能以检查连接健康状况。可以使用 10 秒间隔调度,如果查询链接连接失败,将其从主列表中删除,并添加到重连列表中,在重连列表中可以执行重连方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      • 2011-09-26
      • 2016-03-07
      相关资源
      最近更新 更多