WebSocket是否支持数据压缩以节省带宽?有哪些可用选项?一种可能的解决方案是使用Bijson来代替Json。
发布于 2011-09-21 17:14:22
Websockets节省带宽的第一种方式是让连接对多个(双向)消息开放。只要需要,连接就可以保持打开状态。这意味着不需要像旧的http方法那样为每个事务协商新的连接。消息本身具有标头信息,该信息指定传入消息是文本消息还是二进制消息,以及“有效负载”有多长。
您可以让您的服务以任何您想要的方式解释消息。特定的压缩相关数据可以通过扩展来表示:参见标准的第9节:https://datatracker.ietf.org/doc/html/draft-ietf-hybi-thewebsocketprotocol-15#section-9
标准组织已经为压缩扩展制定了一个工作草案:https://datatracker.ietf.org/doc/html/draft-tyoshino-hybi-websocket-perframe-deflate-00
发布于 2011-09-26 22:22:40
当前的WebSockets协议草案不包含压缩扩展。以前有一个: deflate- stream,它通过压缩整个WS流来工作。这样做的效果是有限的,因为WS引入了客户端到服务器的帧掩码,每个帧的掩码都会发生变化,这样,deflate就不能保持有效的压缩字典。
有一个关于基于帧的压缩的草案,它解决了这个问题,因为压缩字典是在屏蔽之前为有效负载维护的。
发布于 2011-09-21 17:07:53
WebSocket规范允许扩展,例如deflate-stream。但是,客户端和服务器可能支持也可能不支持。
您可能希望使用基于javascript的Zip或其他压缩算法。
https://stackoverflow.com/questions/7497133
复制相似问题