我正在使用Netty 4.0.21Final开发WebSocket服务器。
在使用Netty之前,我直接通过套接字发送数据,现在,我仍然自己做数据压缩。
但是,当仔细观察我在Chrome浏览器上测试客户端的HTTP头时,我看到了这个:
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