什么是 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/