2011-03-11 47 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

相關問題