繁体   English   中英

Java SMPP 库比较

[英]Java SMPP library comparison

我们即将开始一个项目,该项目需要使用 SMPP 作为主要的集成交换渠道。 现在,由于 SMS 不一定是我们业务的核心,我想使用 Java 的 SMPP 库,这将是最不麻烦的。 除了使用实际协议之外,我们不太可能需要更高级的能力或在引擎盖下进行调整。

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

  • Logica 的开放式 SMPP
  • 阿帕奇的骆驼
  • JSMPP
  • Twitter 的 Cloudhopper

那些在使用方面更有经验的人可以用我的方式抛出一些他们的经验吗?

编辑:只是为了给用例提供范围,我们将同时发送和接收 SMS,因此该库应该希望通过客户端操作和服务器侦听器实现让生活变得轻松。

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

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

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

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

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

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

  2. Apache Camel:我们开始使用它,但是它们的库有一些限制(我们需要在SMPP数据包中插入自定义头)。 公平地说,他们在论坛上回答问题的时候非常迅速,但是他们的冲刺时间太长了,所以我们抓住了这个问题。

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

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

我目前正在使用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进行维护,他们添加了一些有用的功能,看起来他们将来会给予强有力的支持

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

目前我正在使用 JSMPP,我发现到目前为止还可以。 Cloudhopper 似乎更容易,但我最终使用了 JSMPP,并且还发现 JSMPP 也是 Apache camel 实现的核心,但我可能是错的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM