2011-03-11 49 views
4

我已经做了一些关于这个主题的谷歌搜索,但一直没能找到任何东西(除了确认AppEngine忽略对'resp.setHeader( “传输编码”,xxxx)'如何启用传输编码:AppEngine在Java中分块

我的问题是,我有一个服务器进程,需要一点点时间来完成(〜3秒平均),但它会产生连续流结果(即第一个数据对象在10ms之后就准备好了)

目前,服务器会缓存响应,然后将整个区域吐出到客户端进行显示,虽然这起作用,但它并不是一个出色的用户体验,因为用户必须等待整个过程完成b在他们能够看到第一个结果之前...

我相信使用分块传输可以解决这个问题,因为我可以立即将第一个响应发送到客户端(并且只要它立即传输后续数据变得可用),提供了一个更好的主意进步等。

我的问题是,我不能解决如何启用分块传输。

谷歌分块传输和应用程序引擎大多是从人想要的帖子禁用分块传输从blobstore,或帖子说明分块传输默认启用。但是,迄今为止我的测试表明,至少对我的应用来说,这不是事实。

同样,非应用引擎引用讨论设置'传输编码'内容标题 - 但这在AppEngine上明确地被忽略了(至少,这是根据python文档 - 在Java端没有发现任何东西,它明确表示,但它也没有工作,当我测试它)。

最后,我已经尝试刷新respose对象,得到响应writer和flush,得到响应输出流和flush等没有任何区别。

所以 - 我的问题是:如何启用分块传输?

回答

5

Appengine不支持响应流。整个回应必须立即归还。

App Engine不支持将数据发送到客户端,在应用程序中执行更多计算,然后发送更多数据。换句话说,App Engine不支持响应单个请求的“流式传输”数据。

请参阅Responses Java

相关问题