JSMPP - EnquireLinkTimer,会话在长时间不活动后死亡

时间:2015-04-07 04:45:19

标签: java session sms smpp jsmpp

JSMPP库中enquireLinkTimer类的SMPPSession属性是什么?它每N毫秒重复一次会话?如果没有,有没有办法在某个时间间隔内自动重新导入会话?

或者我应该怎么做,如果我遇到以下问题:很长一段时间没有要发送的消息,我认为会话已经死亡(我得到了java.net.SocketException: Socket closed),然后消息就没有了#39 ;发送。

1 个答案:

答案 0 :(得分:3)

enquireLinkTimer通过向其发送keep-alive-messages来保持与SMSC的连接。但它不能重新连接/重新连接断开的连接。

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

如果您想立即重新连接,可以设置状态Change Listener to the 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 */
        }
    }
}