【问题标题】:Let a connection to server be open all the time让与服务器的连接一直打开
【发布时间】:2012-11-07 07:43:11
【问题描述】:

我正在为一家公司开发 SMS 应用程序,该应用程序发送 SMS 消息(SUBMIT_SM 命令)并接收 SMSC 的响应(SUBMIT_SM_RESP 命令)以指示它是否已交付给客户。我正在使用JSMPP API

连接到 SMSC 服务器的最佳做法是什么?我应该打开一个连接(一个会话)并在整个应用程序中使用它来发送 SMS 消息(这里有任何内存泄漏)吗?还是每次发送 SMS 消息时都应该连接/断开 SMSC 服务器(此处有任何延迟)?

请注意,我们每小时发送大约 1000-2000 条 SMS 消息。我还注意到 JSMPP API 仅在连接打开时才会收到响应消息 (SUBMIT_SM_RESP)。

【问题讨论】:

    标签: java memory-leaks sms smtp jsmpp


    【解决方案1】:

    这取决于连接实现。如果您的连接在长时间休息期间不会“死亡”,那么请使用一个连接,因为它可以节省您每次请求打开/关闭的时间。

    如果您的应用程序是多线程的(其中多个线程可以发送消息),我建议您实现一种连接池机制(或使用支持 SMSC 会话的可用机制)。

    【讨论】:

    • +1 感谢您的回答!事实上,我的应用程序是多线程的。使用多个会话而不是在所有线程中使用单个会话有什么不同吗?另外,始终打开的连接是否存在任何内存泄漏问题?
    • 打开一个会话没有泄漏问题(只要你在课程结束时关闭它)。它实际上是首选和最简单的方法。但是由于不止一个线程将使用该会话,您需要验证该会话是否已同步(请查看供应商文档,因为我无法保证此同步)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 2010-09-25
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 2017-03-17
    相关资源
    最近更新 更多