2015-04-07 61 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 */ 
     } 
    } 
}