2016-04-19 11 views
2

IPアドレスが変更された場合や接続に失敗した場合に、正しく再接続する方法はありますか?okhttp-wsに再接続する方法

I`m

@Override 
    public void onFailure(IOException e, okhttp3.Response response) { 
     try { 
       connecting(); 
      } catch (Exception e1) { 
      Timber.e(e1, "onFailure"); 
     } 
    } 

    @Override 
    public void onClose(int code, String reason) { 
     Timber.d("Connection unexpectedly closed"); 
     connecting(); 
    } 

    public void connecting() { 
    if (wsClient == null) { 
     wsClient = builder.build(); 
    if (call != null) call.cancel(); 
    call = WebSocketCall.create(wsClient, request); 
    try { 
     lock.lockInterruptibly(); 
     try { call.enqueue(listener); 
     } finally { 
      lock.unlock(); 
     } 
    } catch (InterruptedException e) { 
     Timber.e(e, "connecting error"); 
    } 
} 

.....再接続okhttp-WS

作るしようとすると、私はエラー

java.lang.RuntimeException受け取る:サービスを開始できません...( 追加)}:java.util.concurrent.RejectedExecutionException:タスク [email protected]が拒否されました java.util.concurrent.ThreadPoolE XECUTORする@ d784f8e android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3320)

答えて

2

で [終了し、プールサイズ = 0、アクティブなスレッド= 0は、タスク= 0、完了したタスク= 1キューイング] exempleを見て、私にはトリガー簡単library

... 
try{ 
WebsocketClient.dispatcher().cancelAll();// to cancel all requests 
}... 

は失敗しました(...)あなたは

を再接続することができます