【问题标题】:GZIP traffic via websockets通过 websockets 的 GZIP 流量
【发布时间】:2015-11-24 09:18:43
【问题描述】:

是否可以使用 GZIP 逐帧打包和解包 websockets 流量?

我们有很多 websockets 流量(实时报价)应该打包以减少流量,但我不知道这是否可能。

【问题讨论】:

  • 我看到了那个问题,但没有答案。一年前向 IETF 提交了提案,但从那以后发生了什么?
  • 你可以放气和 base64 最坏的情况...... js 有很多可用的 inflate()/deflate() 工具。您还可以考虑使用 CSV 而不是 JSON,这可以大大减少典型的数据对象足迹(没有引号,没有键重复)。它最近为我节省了大约 75% 的推送日历条目,其中 deflate 在相同的 JSON 上产生了大约 85% 的减少。考虑到 CSV 的构建和解包速度更快,我可以接受...

标签: websocket socket.io gzip


【解决方案1】:

按照this draft 的每条消息压缩是事情的发展方向。

浏览器支持仍然仅限于 Chrome。 Webkit 似乎正在开发中,但不知道 FF 和 IE 何时会跟进。

在服务器端,有例如AutobahnPython 中的一个实现(参见 example here)。

根据您用于项目的堆栈/环境,这意味着您现在可以尝试 WebSocket 压缩。

(完全披露:我在 Tavendo 工作,它是 Autobahn WebSockets 项目的项目维护者。)

【讨论】:

    【解决方案2】:

    我使用 LZ-String 通过套接字来回编码/解码 JSON;一个非常巧妙的 LZW 压缩 JavaScript 实现。

    在人们对此达到标准之前,这是一个很好的解决方案。

    http://pieroxy.net/blog/pages/lz-string/index.html

    它将文本带宽平均减少 10 倍,解码几 kb 所需的时间不到 1 毫秒。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 2012-04-21
      • 2012-10-20
      • 2017-01-30
      相关资源
      最近更新 更多