java - JSMPP - EnquireLinkTimer,长时间不活动后 session 终止

标签 java session sms smpp jsmpp

什么是 JSMPP 库的 SMPPSession 类中的 enquireLinkTimer 属性?它每 N 毫秒重新启动一次 session ?如果没有,有没有办法以一定的时间间隔自动重新启动 session ?

或者我应该怎么办,如果我遇到以下问题:当很长时间没有消息发送时,我认为 session 死了(我得到了 java.net.SocketException: Socket closed ) 然后消息不发送。

最佳答案

enquireLinkTimer 通过向 SMSC 发送 keep-alive-messages 来保持您与 SMSC 的连接。但它无法重新建立/重新连接断开的连接。

也许 SMSC 在一段时间后决定关闭连接,因为您有一段时间没有发送 SMS。您必须通过丢弃旧 session 并创建新 session 来手动重新连接。

如果您想立即重新连接,您可以为您的 session 设置状态更改监听器:

yourSession.addSessionStateListener(new SessionStateListener() {
    @Override
    public void onStateChange(SessionState newState, SessionState oldState,
                                          Object source)
    {
        if (newState == SessionState.CLOSED) {
            /* throw away old session and create a new one */
        }
    }
}

关于java - JSMPP - EnquireLinkTimer,长时间不活动后 session 终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29483928/

相关文章:

java - liferay中ext插件和hook的区别?

java - 这会像析构函数一样工作吗?

当我删除互联网 cookies/历史记录时,php 下拉 session 被删除

android - 仅在 Activity 运行时接收短信

java - 短信存储在数据库中,与数据库进行比较并使用smslib在java中返回短信,如何实现?

java - Android AsyncTask/Service 在任务完成前被杀死

java - 排序程序: What is the next step?

node.js - Nodejs 中的 connect-redis

iphone - 如何创建 session ?

iPhone/Android SMS 截获并重定向到应用程序