2015-04-07 152 views
3

什么是enquireLinkTimerSMPPSession中的属性来自JSMPP库的类?它每隔N毫秒反弹一次会话?如果没有,是否有一种方法可以在一定的时间间隔内自动修改会话?JSMPP - EnquireLinkTimer,会话在长时间不活动后会消失

或者我应该怎么做,如果我面对以下问题:当很长一段时间没有消息发送时,我认为会话消失(我得到java.net.SocketException: Socket closed),然后消息不发送。

回答

3

enquireLinkTimer通过向它发送保持活动消息来保持您与SMSC的连接。但它不能重新连接/重新连接断开的连接。

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

如果你想立即重新连接您可以在状态变化监听器设置到您的会话:

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 */ 
     } 
    } 
}