我想将一些JSON流式转换为通过我写的GZIPFilter。到目前为止,我已经能够调整过滤器来刷新,当我告诉它,它可能会输出兼容的gzip浏览器数据。 我将输出重定向到一个文件并运行gzip -cd -v test.gz,它产生了预期的输出,然后是'意外的文件结束'。使用GZIP将JSON流式传输到浏览器
问题是浏览器仍然看到零输出(萤火虫),所以我想知道是否浏览器解释了gzip流的部分刷新。
该流包含大部分JavaScript指令/对象,应在客户端接收和解析。该servlet被调用一次并在整个会话期间保持打开状态,向客户端提供数据;连接未关闭,因此流继续运行,从服务器提供一种推送数据。
我的设置: 的WinXP 32位, GWT 2.4.0, Jetty7.4 .., GzipFilter(含调整), 火狐8 /铬10
至于我每RFC知道的规格内容仅在流结束后才被解码,所以我想要做的事可能不可能。不过,您可能有一些建议可以在主流浏览器上进行。
后来编辑:
- GzipFilter通过web.xml中指定并且它是确定
- 浏览器接收内容编码:gzip
- 字节正被写入测试的类HTTPResponse流
- 在编译和实时GWT模式下
- 使用字符集iso-8859-1进行测试或未指定
- content-type是tex T/HTML
- 没有通过web.xml中的一切应用滤镜
什么编写自己的gzip过滤器,而不是使用码头的一个原因? – milan 2012-01-10 16:58:38
修正了它。在我被允许提交我的答案后,我会写详细信息。我这样做是因为GzipFilter上的刷新没有注册,直到outputStream被关闭,所以如果你正在尝试实时流,这是行不通的。 – brainwash 2012-01-10 19:49:00
在问题中包括你的动机是很好的,可能有其他人有同样的问题。 – milan 2012-01-10 20:08:45