当前位置: 首页 > 面试题库 >

WebSocket如何压缩消息?

壤驷鸿
2023-03-14
问题内容

JSON.stringify显然不是非常节省空间。例如,当[123456789,123456789]可能需要大约5个字节时,它将占用20+字节。websocket是否在发送到流之前压缩其JSON?


问题答案:

从本质上讲,WebSocket只是用于TEXT或BINARY数据的一组框架。

它本身不执行压缩。

但是,WebSocket规范允许扩展,并且野外有各种各样的压缩扩展(其中一项的正式规范已最终确定)。

截至今天(2018年8月),压缩规范为permessage-deflate

在野外看到的一些扩展:

  • permessage-deflate -不论websocket框架的数量如何,使用deflate压缩整个消息的形式化规范的名称。
  • x-webkit-deflate-frame-较早提出的压缩方法,用于压缩每个原始Websocket数据帧。可供Chrome和Safari使用。(现已在Chrome和Safari中弃用)
  • perframe-deflate-上述压缩的重命名版本。可以在各种Websocket服务器实现中使用,也可以在各种基于WebKit的客户端中简要看到。(在现代浏览器中已完全弃用,但仍在各种WebSocket客户端库中显示)

值得注意的是,permessage- deflate扩展是在一个线PMCE(每个消息被压缩扩展)的第一,最终将包括其它压缩方案(正在讨论那些是permessage-bzip2permessage- lz4permessage-snappy



 类似资料:
  • 当我向Kafka主题发送消息时,我可能会收到一条比其他消息大得多的消息。 因此需要在单消息级进行压缩。根据https://cwiki.apache.org/confluence/display/kafka/compression, 一组消息可以被压缩并表示为一个压缩消息。 同样,根据https://github.com/apache/kafka/blob/0.10.1/clients/src/ma

  • 使用Kafka Streams,我们无法确定在处理写入接收器主题的消息后压缩这些消息所需的配置。 另一方面,使用经典的Kafka Producer,可以通过在KafkaProducer属性上设置配置“compression.type”轻松实现压缩 然而,似乎没有任何记录在案的Kafka Streams压缩处理过的消息的例子。 至于这次(2019年初),有没有一种方法可以使用Kafka流进行压缩?

  • 我有一个Spring启动应用程序使用webSocket和跺脚协议。自从我移动到Spring引导启动父版本1.3.0。M2我注意到一个额外的压缩头在webSocket握手,即。 Sec WebSocket扩展:permessage deflate 这一切对我来说都很好,但我希望在运行开发构建时有机会禁用此标头。当该头存在时,wireshark stomp堵塞似乎有问题。因此,问题是如何在扩展WebS

  • 问题内容: 任何人都可以向我展示在我一直在搜索的Java中压缩和解压缩tar.gzip文件的正确方法,但是我能找到的最多是zip或gzip(单独)。 问题答案: 我最喜欢的是plexus-archiver-请参阅GitHub上的资源。 另一个选项是Apache commons- compress- (请参阅mvnrepository)。 使用plexus-utils,用于取消存档的代码如下所示:

  • 本文向大家介绍Android如何实现压缩和解压缩文件,包括了Android如何实现压缩和解压缩文件的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴java代码了,具体代码如下所示: Java代码 代码到此结束,关于Android实现压缩和解压缩文件的全内容就给大家介绍这么多,希望能够帮助到大家!

  • 我想在Netty客户端/服务器上应用压缩/解压缩。我在客户端和服务器中使用以下代码作为管道: 并将服务器设置为: 我得到了以下错误在客户端启动连接 警告:初始化通道失败。关闭:[id: 0x3553bb5c]java.lang.NoClassDefFoundError: com/jcraft/jzlib/Inflater在io.netty.handler.codec.compression.JZl