У меня есть следующие методы для запроса и ответа:
data class ApiRequest(
@SerializedName("command") var command: String,
@SerializedName("data") var data: String
) : Serializable
data class ApiResponse(
@SerializedName("command") var command: String,
@SerializedName("response") var response: String
) : Serializable
и методы запроса и ответа:
websocket?.sendMessage(apiRequest)
?.subscribeOn(Schedulers.io())
?.observeOn(AndroidSchedulers.mainThread())
?.subscribe({ success ->
Log.d(TAG, "Message sent")
}, {t: Throwable? -> t?.printStackTrace() })
webSocket?.onTextMessage()
?.subscribeOn(Schedulers.io())
?.observeOn(AndroidSchedulers.mainThread())
?.subscribe({ socketMessageEvent ->
PushData(socketMessageEvent.text)
}, {t: Throwable? -> t?.printStackTrace() })
Как я могу реализовать такой метод:
fun getData(apiRequest: ApiRequest): Observable<ApiResponse>
без использования BroadcastReceivers, EventBus и т. Д.?
Я могу сравнить запрос и ответ следующим образом:
if (apiRequest.command == apiResponse.command) {
// do smth
}
и фильтрация ответов. Спасибо за вашу помощь.