java - Netty的WebSocket消息是否被压缩?

标签 java websocket netty

我正在使用 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/

相关文章:

java - 为下载非常大的文件的 http 服务提供流接口(interface)

java - 我的 System.out.println();继续打印 null 而不是它应该打印的文本

java - 将日期/时间添加到 JFreeChart 图形

ruby-on-rails - 配置 nginx 以代理 thin 和 Rails ActionCable

java - 如何估算总 IO

java - 如何在 Netty 中根据 URI 路由请求?

java - DateTime ("2019-08-07T19:20-5:00") 转换为具有偏移值的本地日期时间

java - 检测要在 JAVA 中插入/删除的 PKCS#11 token

javascript - 在 JavaScript 中关闭 WebSocket 连接 - 每次都会出现 1006 错误代码

node.js - 计算 WebSocket 连接的 Ping?