跨多个绑定的 SMPP 消息串联

SMPP message concatenation across multiple binds

我们基于CloudHopper SMPP库开发了一个SMPP服务器。该系统在生产中每天处理大量消息。

允许客户维护多个 TX 绑定以获得更高的吞吐量和冗余。最近我们发现我们的一些客户通过多个绑定发送分段消息(消息部分)。因此,我们通过来自同一客户(相同的 SystemId)的不同绑定接收到单个 SMS 的部分内容,并且这些部分是有效的(在 UDH 中,具有相同的参考号、有效的序列号等)。 我们支持绑定级别的串联,但不支持跨多个绑定。

支持对通过多个绑定发送的部分进行串联是一种 standard/good 做法吗?连接消息的 UDH header 中的消息参考号对于 SMPP 网关创建的所有绑定应该是唯一的?欢迎对此有任何想法

更新: 关于 UDH 中的 MessageRef no,我们了解到不能保证它在多个绑定中是唯一的。 (我们在同一客户的并发绑定中看到重复的 MessageRef)。现在,如果它们具有相同的 MessageRef 编号和相同的 destination 编号,我们将它们连接起来。我们相信很少会同时收到两个具有相同 MessageRef 编号的部分序列,去同一个移动设备。

只要串联的消息具有有效的 UDH,我认为这不是问题。 SMSC 对此通常是透明的,尽管它知道多部分消息属于单个 SMS 消息。从实践的角度来看,客户通常只对 1 个发射器的绑定端有限制(在千兆网络上应该不是问题),但这取决于他们想要提交的 messages/s 的数量。 我通常在中间有自己的队列,所以提交响应不会影响 SMSC 提交延迟。