我有一个项目即将到来,我需要通过特定的移动运营商发送和接收消息,该运营商仅提供SMPP接口.整个项目将是一个托管网站.我已经阅读了很多内容,但我还不太了解我方需要使用该协议的实际内容.
我的应用程序是否应该尝试保持与smpp的持续连接?我可以简单地连接,发送消息然后断开连接吗?
是否正在接收基于推或拉的消息?
谢谢您的帮助.
小智 8
SMPP是一种点对点协议.这应该意味着SMS Gateway(您的身边)和SMSC(您的移动运营商)需要建立正确的绑定/连接.即使没有SMS或DLR要发送/接收,也会连续交换smpp PDU(enquire_link/inquire-link_resp)以确保绑定已建立.详细地说,如果你发送一个enquire_link PDU并且没有得到响应(enquire_link_resp),那么绑定就会被破坏.您的短信将不会被送达(将继续排入您的网关商店),您将不会收到MO(传入短信)或DLR(传送报告).要重新建立连接,您应该重新启动连接.
所以,我的答案是你需要一个与SMSC的持续连接.
小智 4
您声明您想要接收消息,因此至少bind_receiver需要 a。因为您不知道消息何时传入,所以您必须始终保持连接,而不是在每次事件后断开连接。
关于你关于“推还是拉”的问题,这取决于你如何解决第一个问题。如果你能构建一个持续连接的解决方案,结果将是推送(运营商收到消息后会立即推送给你)。如果(由于某种原因)你无法保持持续的连接,你最终将构建一个拉机制。您将每隔 X 秒连接到运营商,看看他们是否有消息在等您。
不过,我确实需要强调两个陷阱:
因此,持续的连接确实是正确的选择。或者,您可以考虑像 Nexmo 这样的公司,每次消息到达时它都会为您提供 HTTP 调用。
我不确定您使用哪种语言开发应用程序,但如果您使用任何流行的语言(Java、PHP、Perl),都有一些模块可以为您处理基本的 SMPP 连接。在 google 上快速搜索您的语言和“SMPP 客户端”将为您提供参考列表。
| 归档时间: |
|
| 查看次数: |
6146 次 |
| 最近记录: |