https://github.com/lxzan/gws 在 v1.8.0-rc2 更新中, gws 实现了上下文接管和可配置的滑动窗口大小, 至此 WebSocket RFC 7692 全部特性都得到了实现. 连续发送相似内容的场景, 上下文接管可以带来非常高的压缩率, 以斗破苍穹电子书为例, 原文 14.93MB, 每次写入 4KB 直到 EOF: ``` context_take_over, window_bits=12, size=7.35MB context_take_over, window_bits=15, size=6.71MB no_context_take_over, window_bits=15, size=8.91MB ``` gws 和 gorilla 的差异对比: | Features | gorilla/websocket | lxzan/gws | | ------------ | ------------------------------------------------ | --------- | | RFC 6455 | 支持 | 支持 | | RFC 7692 | 部分支持, 不支持上下文接管和可配置的滑动窗口大小 | 全部支持 | | 并发写 | 不支持 | 支持 | | 异步写 | 不支持 | 支持 | | 并行消息处理 | 不支持 | 支持 | | 预备帧 | 支持 | 支持 |
有疑问加站长微信联系(非本文作者)
