websocket也支持压缩的

fginter · · 1941 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

​ 1. 解读 我们平常在项目中,经常会用到websocket,用来传递实时消息,或者类似IM聊天这种场景。但你知道么?websocket消息,也是支持压缩的,只是我们比较少用到她。在客户端向服务端发起连接的时候,在header里面,会带上自己支持压缩的标记,见下:这地方是不是和http header里面带上 Accept-Encoding: gzip, deflate, br,也就是客户端支持gzip压缩有点类似? 如果服务端也支持websocket数据压缩返回,那么她的header里面,也会带上下面的标记,意思是告诉客户端,我支持压缩,并且数据会压缩返回给你:  ​![1png.png](https://static.golangjob.cn/230812/efa1fe218593f2aa94144b7d0bb8d8b1.png) 这个方案已经写进了RFC:RFC 7692: Compression Extensions for WebSocket websocket压缩之所以没有被大面积采用,我想主要还是和压缩产生的收益有关,一般用websocket,传输的数据量不会太大,数据量越小,压缩所产生的收益也就越小,所以不压缩,应该对数据传输,也不会产生很大的影响。 ![2.png](https://static.golangjob.cn/230812/798c34264e50633a6f31302a3972b0f0.png) 2. 开源代码参考: GitHub - luisbebop/websocket-echo-deflate: Simple websocket server supporting permessage-deflate extension

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1941 次点击  
加入收藏 微博
1 回复  |  直到 2023-08-14 10:19:04
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传