2016-04-19 2 views
2

Как правильно подключиться, если IP-адрес изменился или выйдет из строя?Как подключить okhttp-ws

I`m попробовать сделать переподключение okhttp-WS

.....

@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"); 
    } 
} 

и я получаю сообщение об ошибке

java.lang.RuntimeException: Не удается запустить службу ... (имеет extras)}: java.util.concurrent.RejectedExecutionException: Задача [email protected] отклонено с java.util.concurrent.ThreadPoolE Xecutor @ d784f8e [Отменено, размер пула = 0, активные потоки = 0, в очереди задач = 0, выполненные задачи = 1] на android.app.ActivityThread.handleServiceArgs (ActivityThread.java:3320)

ответ

2

см Exemple и мой легкий library

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

срабатывает на Failed (...) можно восстановить

Смежные вопросы