如何重新连接okhttp-ws [英] How to reconnect okhttp-ws

查看:69
本文介绍了如何重新连接okhttp-ws的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果IP地址更改或连接失败,如何正确重新连接?

我正在尝试重新连接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.Rty异常:无法启动服务...(有 Extras)}:java.util.concurrent.RejectedExecutionException:任务 OkHtp3.RealCall$AsyncCall@3f946389被拒绝,来自 Java.util.concurrent.ThreadPoolExecutor@d784f8e[Terminated,池大小 =0,活动线程=0,排队任务=0,已完成任务=1] 在… Android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3320)

推荐答案

参见Example and My Easylibrary

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

触发失败(...)您可以重新连接

这篇关于如何重新连接okhttp-ws的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆