我正在使用 Netty 4.0.21Final 开发 WebSocket 服务器。
在使用Netty之前,我是直接通过socket发送数据,现在,我仍然自己对数据进行压缩。
但是,当在 Chrome 浏览器上仔细查看我的测试客户端的 HTTP header 时,我看到了这一点:
Request URL:ws://127.0.0.1:8089/echo
Request Method:GET
Status Code:101 Switching Protocols
Request Headers CAUTION: Provisional headers are shown.
Cache-Control:no-cache
Connection:Upgrade
Host:127.0.0.1:8089
Origin:null
Pragma:no-cache
Sec-WebSocket-Extensions:permessage-deflate; client_max_window_bits, x-webkit-deflate-frame
Sec-WebSocket-Key:U0CPp11Bhqxp2lffj4tebw==
Sec-WebSocket-Version:13
Upgrade:websocket
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
Response Headers
Connection:Upgrade
Sec-WebSocket-Accept:0vvWjhf27ScZauqx+jSfm/Xsuho=
Upgrade:websocket
“扩展”部分中的permessage-deflate表示我的消息已被压缩?
因此,为了尝试回答这个问题,我使用了一个名为 Wireshark 的软件,当查看消息时,我发现它根本没有压缩,它们都是纯文本。
那么,我必须做什么才能让 Netty 真正为我压缩消息?
最佳答案
昨天刚刚添加了压缩支持。因此它尚未包含在任何版本中:
https://github.com/netty/netty/commit/282d6e73b82ec943a739201f7be1985c45ef032b
关于java - Netty的WebSocket消息是否被压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24663127/