有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    你的情景听起来像server push

    您可以尝试在Jersey服务中使用Atmosphere框架来实现您的目标