Java SMPP库比较

我们即将开始一个需要使用SMPP作为主要集成交换渠道的项目。 既然SMS不一定是我们业务的核心,我想使用一个最简单的Java的SMPP库。 除了遵循实际的协议,我们不太可能需要更高级的能力或者在引擎盖下进行调整。

为此,我列出了一些可能的选项:

  • Logica的Open SMPP
  • 阿帕奇的骆驼
  • JSMPP
  • 推特的Cloudhopper

那些在使用方面更有经验的人可以按照我的方式投入一些经验吗?

编辑:只是为了给用例提供范围,我们将发送和接收SMS’,因此库应该有希望通过客户端操作和服务器监听器实现简化生活。

我已经将jsmpp和cloudhopper-smpp用于单独的项目,这些项目涉及在涉及的情况下发送和接收SMS的smpp:

  • 接收中高数量的MO。
  • 发送大量MT(最高70 /秒)。

两个库都表现良好,IMO jsmpp更加用户友好,可以立即开始编码。 但是我在使用github的最新版本时遇到了一些错误,但仍然没有修复。

在使用了cloudhopper之后,我认为它非常值得学习曲线,与jsmpp(主观)相比,它有点陡峭。

只是更新了我最终决定的内容(以及库如何审核):

  1. Logica:看起来很有希望,但我担心整个社区缺乏更新/活跃性。 最后一个有意义的构建是yonks前所以不是我想要的投资。

  2. Apache Camel:我们开始使用它,但是它们的库有一些限制(我们需要在SMPP数据包中插入自定义头)。 公平地说,他们在他们的论坛上回应问题时相当迅速,但他们的构建周期对我的冲刺来说花了一点时间,所以我们抓住了这个。

  3. JSMPP:这是我们最终使用的那个。 整体而言非常简单,它确实让人觉得你已经对SMPP有了一个相当不错的想法。 事情正在进行中,所以我无法告诉你它在生产负荷下的表现如何。 它会在上线时更新。

  4. Cloudhopper:说实话,这是我热衷于使用的那个,但更多的是因为像任何一个怪人我想跳上最shiny的最新玩具。 对于我们从关闭时提出的任何问题,我都没有得到足够的回应,所以有点担心加入。 没有理由采用一个库,当需要其他更多记录的选项时,这个库需要我通过他们的代码。

我目前正在使用Logica的库实现一个基于Java的SMPP解决方案。 这是非常容易使用。 以下信息说明了测试结果:

应用程序:在Glassfish 3.1.2.2中部署的Enterprise Java Bean应用程序
语言:Java(使用JMS)
图书馆:Logica SMPP(版本1.3)
Origin(ESME):localhost
目的地(SMSC):开发服务器上的Logica SMSC模拟器(托管在Amazon Web Services中)
类型:Transciever Asynchronous
平均发送率(80%):246 msg /秒
低发送率(15%):50 msg / sec
高发送速率(5%):255 msg / sec

只要你坚持异步模式,它就非常有效。 如果需要保持消息与其响应之间的相关性,请使用消息和响应中的“序列号”。

我们的SMSC是在Logica SMPP(v 1.3)上编写的,它仍然适用于企业负载。 关于图书馆的问题只有少数主要有message_payload,老实说我不记得其他问题了。 但它很容易修复,因为它是一个开源产品。

虽然我个人信任logica的来源,但对于小型客户我使用jsmpp。 我同意@Farhan的说法,它更加用户友好,开发简单的客户端需要更少的时间。

我已经使用了jsmpp和smppapi ,发现后者更好,因为当时jsmpp只有同步阻塞模式(2010) – 不确定是否仍然如此。

当我连接的SMPP服务器出现一些性能问题并且响应速度比平常慢时,jsmpp的阻塞性质成为大问题的根源。 突然间,我发现我的所有线程都在等待响应。 迁移到smppapi显然解决了这些问题。

我已经将Logica SMPP用于生产项目。 它不再被主动维护,并且有一些固有的错误导致必须产生变通方法或实际上要求代码库修复。 话虽如此,我发现API非常稳定和高性能(300msg / s)。

我简要地看了一下JSMPP,它有一个比Logica好得多的API,尽管很长一段时间内问题清单上都没有修复大量的缺陷。

刚刚遇到Cloudhopper SMPP,它似乎以更新的风格编码,但它又需要更多的例子。 不得不通过代码库进行编程并不具吸引力。 关于gituhub的例子越来越好了。

Cloudhopper是最好的选择,Apache的Camel也很好,但它是一个非常大的项目,有许多你不需要的pdf,salesforce ….的接口。 其他项目迄今未更新。 Cloudhopper正在通过Telestax维护,他们添加了一些有用的function,看起来他们将来会给予强有力的支持

这里是用于简化配置的堆栈Cloudhopper https://github.com/RestComm/smpp-extensions这里是通过telestax分叉的Cloudhopper(非常新闻): https : //github.com/RestComm/cloudhopper-smpp还有JainSlee资源适配器谁在电信领域工作https://github.com/RestComm/jain-slee.smpp