我想將一些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