web服务JAVA:泽西岛上的分块传输
我有一个正在运行的web服务,它将被客户端移动应用程序使用。其中一个服务是返回一个JSON对象数组(超过1000个对象),每个对象都有相当大的大小。服务器端的整个计算需要一些时间,这不是一个好的用户体验。所以我希望以块的形式发送数据,比如说每个块10个对象,这样数据就会占据屏幕,当他滚动时,或者当数据准备好时,屏幕就会充满从最近接收到的块中新获取的数据
我使用Jersey框架并发送一个Java Response
对象作为返回对象。在这种情况下有可能实现分块传输吗?。代码是这样的
@Path("/doSomething")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response doSomething() {
List<Object> myObj = getMyObj();
/* getMyObj returns a list of Objects, each object of considerable size
* the whole computation of getMyObj takes some time
*/
return Response.ok(myObj).build();
}
# 1 楼答案
你的情景听起来像server push
您可以尝试在Jersey服务中使用Atmosphere框架来实现您的目标