我在理解和实现WebSocket的permessage-deflate扩展方面遇到了问题。
目前为止,我已经在握手代码中添加了“Sec-WebSocket-Extensions:permessage-deflate”,看起来一切都很正常。
然而,当我从服务器(Node.js)向客户端(JS)发送“TEST”消息时,浏览器(Chrome和Firefox)似乎没有自己解压缩数据。
如何正确地使用permessage-deflate扩展实现数据压缩和解压缩?
请求头:
GET ws://localhost/ HTTP/1.1
Host: localhost
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: null
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4
Sec-WebSocket-Key: X3RofjiYbzVR8zUPI5ZI6w==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Protocol: Exodus_101
响应头:
HTTP/1.1 101 Web Socket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
sec-websocket-accept: sFO1Id30BZe63QWcm894hnnb+Pg=
Sec-WebSocket-Protocol: Exodus_101
Sec-WebSocket-Extensions: permessage-deflate