簡體   English   中英

WebSocket數據壓縮

[英]WebSocket data compression

WebSocket是否支持數據壓縮以節省帶寬? 有哪些選擇? 一種可能的解決方案可能是使用Bijson代替Json。

Websockets節省帶寬的第一種方法是為多個(雙向)消息保持連接打開。 只要需要,連接就可以保持打開狀態。 這意味着不需要像舊的http方法那樣為每個事務協商新的連接。 消息本身具有標頭信息,指定傳入消息是文本還是二進制,以及“有效負載”的長度。

您可以讓您的服務以您想要的任何方式解釋消息。 具體的壓縮相關數據可以通過擴展來表達:參見標准的第9節: http//tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-15#section-9

標准組織制定了壓縮擴展的工作草案: http//tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate-00

當前的WebSockets協議草稿不包含壓縮擴展。 之前有一個:deflate-stream,它通過壓縮整個WS流來工作。 其有效性是有限的,因為WS引入了客戶端到服務器的幀掩蔽,每幀更改了掩碼,並且由此,deflate將無法保持有效的壓縮字典。

有一個基於幀的壓縮的提案草案可以解決這個問題,因為在屏蔽之前會為有效負載維護壓縮字典。

WebSocket規范允許擴展,例如deflate-stream。 但是,客戶端和服務器可能支持也可能不支持它。

您可能想要使用基於javascript的Zip或其他壓縮算法。

您可以通過ssh連接隧道傳輸所有內容,並關閉加密並將壓縮設置為最大值?

例如:

ssh -N -g -f -C -o CompressionLevel=9 -o Cipher=none eamorr@172.16.1.218 -L 6999:172.16.1.218:3129

暫無
暫無

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

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