JSMPP库中enquireLinkTimer
类的SMPPSession
属性是什么?它每N毫秒重复一次会话?如果没有,有没有办法在某个时间间隔内自动重新导入会话?
或者我应该怎么做,如果我遇到以下问题:很长一段时间没有要发送的消息,我认为会话已经死亡(我得到了java.net.SocketException: Socket closed
),然后消息就没有了#39 ;发送。
答案 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 */
}
}
}