현재 RxJava를 사용하여 서버 폴링을 구현하려고합니다. 서버 응답을받은 후 전체 체인을 반복하는 방법에 대한 연구를 해본 결과 repeat()로 시도했습니다. 작동하지만 완벽하게 작동하지 않는 이유는 api 호출을 여러 번 호출하고 서버가 클라이언트에 보내기 전에 데이터를 처리하는 데 여분의 시간이 필요하기 때문에 정확한 시간을 알지 못하기 때문에 repeatWhen()를 사용하여 구체적인 시간. 내가 사용할 수있는 유일한 방법은 API 응답을 기다리는 것입니다.RxJava를 사용한 서버 폴링 - 서버 응답을 얻은 후 반복
어떤 조언을 주시면 감사하겠습니다!
retrofitService.requestPolling()
.repeat() // do not wait to call server so many times
.takeUntil(new Func1<PollResponse, Boolean>() {
@Override
public Boolean call(PollResponse pollResponse) {
return pollResponse.mComplete;
}
})
.doOnNext(new Action1<FlightSearchPollResponse>() {
@Override
public void call(pollResponse pollResponse) {
// update UI here
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<PollResponse>() {
@Override
public void onCompleted() {
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(PollResponse pollResponse) {
});
편집 :
다음
는 코드입니다 내가 RxJava 새로운 오전, 단지 배압이라는 주제를 가지고, 기사의 많은 내가 원하는 해달라고 때문에, 그것을 처리하는 방법을 설명있다 이 응답을 캐시하면 제목이 좋은 옵션이 될 것 같아서 언제 끌 것인지 제어 할 수 있습니다. @Gary LO에http://akarnokd.blogspot.com/2015/06/subjects-part-1.html
그리고 감사