Переподключение с помощью retrywhen rxjava2 в Android - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть одноразовое устройство RxJava, где я слушаю обновления в режиме реального времени с сервера

someNetworkBaseFlowable
    .observeOn(schedulerProvider.io())
    .subscribeOn(AndroidSchedulers.mainThread())
    .subscribe({
        // handle success
    }, {
        // handle failure
    })

При сбое в сети эта подписка не выполняется, и я теряю подключение к серверу, даже когда сеть возвращается.

Я пытался нам retryWhen повторно подписаться на сервер следующим образом:

someNetworkBaseFlowable
    .observeOn(schedulerProvider.io())
    .subscribeOn(AndroidSchedulers.mainThread())
    .retryWhen { error ->
        error.flatMap {
            Flowable.timer(5, TimeUnit.SECONDS)
        }
    }
    .subscribe({
        // handle succes
    }, {
        // handle failure
    })

Я, хотя это будет пытаться пропинговать или переподключаться к серверу и повторную подписку каждые 5 секунд., однако это не тот случай!

Я некоторое время боролся, и любая помощь в этом вопросе будет оценена.

...