У меня проблема с rx java: когда я вызываю подписку API реального времени из grapql, данные ответа сервера клиенту (многие ответы кажутся одинаковыми). Клиент не может получить достаточно данных с сервера.
здесь код:
fun <D : Operation.Data, T : Operation.Data, V : Operation.Variables> subscribeWithRawResponse(
subscriptionCall: Subscription<D, T, V>
): Flowable<Response<T>> {
return Flowable.defer {
Rx2Apollo.from(getApolloClient().subscribe(subscriptionCall).clone())
}.handleResponse().observeOn(Schedulers.computation())
}
inline fun <D : Operation.Data, T : Operation.Data, V : Operation.Variables, reified U : Any> subscribe(
subscriptionCall: Subscription<D, T, V>
): Flowable<U> {
return subscribeWithRawResponse(subscriptionCall)
.flatMap { rawResponse ->
val data: U? = extractDataGraphQLResponse(rawResponse)
if (data != null) {
Flowable.just(data)
} else {
Flowable.error(NullPointerException())
}
}
}
предположим, что сервер вернется 4 раза с данными: Task1, Task2, Task3, Task4
ожидаемый результат при подписке клиента: Task1, Task2, Task3, Task4
но на самом деле в некоторых случаях клиент просто получает и отправляет: Task1, Task2, Task3
Так что, пожалуйста, помогите мне! Большое спасибо