Node.js 如何通过NodeJs SMPP在传递时将多个消息连接为一个

Node.js 如何通过NodeJs SMPP在传递时将多个消息连接为一个,node.js,sms,gsm,smpp,Node.js,Sms,Gsm,Smpp,Hello im使用Nodejs和farhadi节点smpp库通过smpp v3.4协议和gsm库发送消息以拆分消息,在我的情况下,我有一条长消息(超过255个字符),当我拆分消息时,我希望它作为单个长消息交付,但不幸的是,它是分部分交付的。这是我发送信息的示例代码 var info = gsm(text); var concat_ref = Math.floor(Math.random() * 255); var part_id = 0; info.parts.forEach(function

Hello im使用Nodejs和farhadi节点smpp库通过smpp v3.4协议和gsm库发送消息以拆分消息,在我的情况下,我有一条长消息(超过255个字符),当我拆分消息时,我希望它作为单个长消息交付,但不幸的是,它是分部分交付的。这是我发送信息的示例代码

var info = gsm(text);
var concat_ref = Math.floor(Math.random() * 255);
var part_id = 0;
info.parts.forEach(function(part){

  part_id++;
  var udh = new Buffer.allocUnsafe(6);
  udh.write(String.fromCharCode(0x5), 0); //Length of UDF
  udh.write(String.fromCharCode(0x0), 1); //Indicator for concatenated message
  udh.write(String.fromCharCode(0x3), 2); //  Subheader Length ( 3 bytes)
  udh.write(String.fromCharCode(concat_ref), 3); //Same reference for all concatenated messages
  udh.write(String.fromCharCode(info.sms_count), 4); //Number of total messages in the concatenation
  udh.write(String.fromCharCode(part_id), 5); //Sequence number ( used by the mobile to concatenate the split messages)


  session.submit_sm({
    source_addr:      from,
    destination_addr: to,
    message_payload: { udh: part.udh, message: part }
}, function(pdu) {
  console.log('sms pdu status', lookupPDUStatusKey(pdu.command_status));
    if (pdu.command_status == 0) {
        // Message successfully sent
        console.log(pdu.message_id);
    }
});

})  

你说的“我希望它作为一条长消息传递”是什么意思还不是很清楚

但就SMPP而言,您所做的似乎是正确的。长消息分部分发送,并由终端(电话)根据以下三个参数连接:part_ref、part_number和total_parts。然而,根据我的经验,连接并不是所有设备的真正标准。例如,一些设备没有等待足够长的时间让所有部件到达并显示不完整的消息或什么都没有


当通过SMPP发送连接的sms时,您有两个选择:一个是您使用的(UDH),但也有专门用于这3个参数的TLV参数。您可以询问您的SMPP提供商关于它们如何支持连接消息发送的更多详细信息。

您可以使用官方SMPP中所述的
message\u payload
参数(字段名)发送长度超过254个八位字节的消息

消息\u有效载荷
定义:

包含扩展短消息用户数据。最多可以使用64K个八位字节 传送

官方文件说:

需要发送长度超过254个八位字节的消息的应用程序应 使用message_payload参数。在本例中,sm_长度字段 应设置为零

短消息数据应插入短消息中的任意一个 或消息_有效载荷字段。不能同时使用这两个字段 同时

我用节点smpp做了一个测试,它运行正常。不需要连接