我可以使用Retrofit + RxJava来聆听无尽的流吗?例如Twitter流.我有的是这个:
public interface MeetupAPI {
@GET("http://stream.meetup.com/2/rsvps/")
Observable<RSVP> getRSVPs();
}
MeetupAPI api = new Retrofit.Builder()
.baseUrl(MeetupAPI.RSVP_API)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(MeetupAPI.class);
api.getRSVPs()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(rsvp -> Log.d(TAG, "got rsvp"),
error -> Log.d(TAG, "error: " + error),
() -> Log.d(TAG, "onComplete"));
Run Code Online (Sandbox Code Playgroud)
但在解析第一个对象后调用"onComplete".有没有办法告诉Retrofit保持开放直到另行通知?
你能解释一下Square的Retrofit响应解析逻辑吗?我感兴趣的是我们应该接收并解析一个大的json(> 100Kb) - 将等待所有内容从服务器收到而不是解析它,或者它会在获取流数据时立即解析它吗?我的目标是加快响应处理速度.
有没有可供配置的选项?