Предполагая следующий сценарий, что было бы лучшим/рекомендуемым решением проблемы?
У меня есть два потока, один из которых представляет TCP-соединение, а другой представляет состояние этого TCP-соединения. Как только статус изменится (т.е. отключен), я хотел бы повторно установить TCP-соединение.
Моя первоначальная идея состояла в том, чтобы иметь эти 2 потока, объединить их и применить retryWith к результирующему Observable. Второй поток — это экземпляр PublishSubject, что дает мне очень удобный способ отказа. Теперь эта идея частично работает, за исключением того факта, что когда я вызываю onError() для издателя, поток соединения (№1) продолжает подписку/отмену подписки до тех пор, пока не исчерпается лимит, установленный retryWhen.
Я уверен, что эта проблема, должно быть, была решена в прошлом, когда вы хотите поддерживать TCP-соединение в рабочем состоянии, я просто не знаю, как двигаться дальше. Любая помощь будет оценена по достоинству.