2013-10-06 54 views
1

消息沒有傳遞給服務器時,有辦法處理情況嗎?海豚日誌記錄的情況很清楚,但我想從代碼中看到它。我一直在尋找像一些方法:的onError覆蓋像onFinished如何解決OpenDolphin客戶端發送HttpHostConnectException?

clientDolphin.send(message, new OnFinishedHandlerAdapter() { 
     @Override 
     public void onFinished(List<ClientPresentationModel> presentationModels) { 
      // Do something useful 
      } 
     } 
    }); 

,但有一點也不像。也包裝發送在try/catch中的調用不起作用(因爲send沒有阻止其調用者代碼,所以不會起作用)。

我的確有一些簡單的方法來獲得有關未傳遞的消息的信息,但我無法看到它。 Thaks,在advace,尋求答案!

回答

1

您可以爲ClientConnector分配一個onException處理程序 - 而且您實際上應該這樣做。異常處理程序將獲取在異步發送操作中發生的異常對象。

下面是默認的處理程序,即使告訴你,你應該做的;-)

Closure onException = { Throwable up -> 
    def out = new StringWriter() 
    up.printStackTrace(new PrintWriter(out)) 
    log.severe("onException reached, rethrowing in UI Thread, consider setting ClientConnector.onException\n${out.buffer}") 
    uiThreadHandler.executeInsideUiThread { throw up } // not sure whether this is a good default 
} 
+0

謝謝Dierk。我已經做出了非常醜陋的解決方法:發送空消息,並等待響應幾秒鐘後出現。它作爲心跳分開運行。但使用正確的解決方案肯定是一個更好的主意;)非常感謝! –

相關問題