簡體   English   中英

播放框架:通過WebSocket對數據進行Gzip壓縮/解壓縮

[英]Play Framework: Gzip compression/decompression of data over WebSocket

Play中是否可以通過WebSocket通道傳遞使用Gzip壓縮的數據? 我在https://www.playframework.com/documentation/2.3.1/GzipEncoding中閱讀了有關GzipFilter的內容。 有沒有辦法在WebSocket中使用它? 此外,我的服務器還接受HTTP請求,但我不想將GZIP應用於它們。 有沒有一種方法可以將Gzip僅與WebSocket一起使用,而不包括HTTP?

AFAIK有一些websocket連接的壓縮擴展。 http://tools.ietf.org/html/draft-tyoshino-hybi-permessage-compression-00 )。

在某些瀏覽器中,此問題現在應該已修復,並且默認情況下已啟用(Chrome)。 在其他版本(Firefox,WebKit)中,還沒有( https://bugzilla.mozilla.org/show_bug.cgi?id=792831https://bugs.webkit.org/show_bug.cgi?id=98840)

只要客戶端和服務器都支持,只要啟用Gzip就不會有任何問題。

您可以配置何時使用Gzip(至少在某種程度上)。 例如,如果您具有JSON API並且還提供正常的HTML,則可以決定僅對JSON數據進行Gzip壓縮:

new GzipFilter(shouldGzip = (request, response) =>
  response.headers.get("Content-Type").exists(_.startsWith("application/json")))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM