Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 弹簧护套2-Webflux-Websocket-激活压缩_Spring Boot_Spring Webflux - Fatal编程技术网

Spring boot 弹簧护套2-Webflux-Websocket-激活压缩

Spring boot 弹簧护套2-Webflux-Websocket-激活压缩,spring-boot,spring-webflux,Spring Boot,Spring Webflux,我正在使用: Spring Boot 2.1.0版本 Webflux(非MVC) 网袋 活性网状物 我想用“GZIP”(或任何其他压缩)压缩返回的有效负载。我尝试了application.yml中的配置: server.compression.enabled: true 但是返回的有效负载仍然是纯文本 有人知道如何解决这个问题吗?谢谢。server.compression.enabled配置属性是关于HTTP响应压缩的,因此这不会达到预期的目标 使用WebSocket,您可以通过协议扩展激

我正在使用:

  • Spring Boot 2.1.0版本
  • Webflux(非MVC)
  • 网袋
  • 活性网状物
我想用“GZIP”(或任何其他压缩)压缩返回的有效负载。我尝试了application.yml中的配置:

server.compression.enabled: true
但是返回的有效负载仍然是纯文本


有人知道如何解决这个问题吗?谢谢。

server.compression.enabled配置属性是关于HTTP响应压缩的,因此这不会达到预期的目标

使用WebSocket,您可以通过协议扩展激活每条消息的压缩,您选择的容器支持它。在握手过程中,必须使用
Sec WebSocket Extensions
在客户端和服务器之间进行协商。因此,在您的情况下,激活它是不够的,您还需要在客户端上启用它。看

默认情况下,某些容器(如最新版本中的Jetty)正在启用这些压缩扩展。在内蒂反应堆的案例中,我不确定情况是否如此

对于接下来的步骤,您可以:

  • 检查您的客户端是否正在发送该头并支持此协议扩展
  • 切换到Jetty,检查这是否是现成的
  • 如果它与Jetty一起工作,而与Reactor Netty不一起工作,则应该这样做,因为Netty基础结构可能缺失(
    WebSocketServerCompressionHandler
    ?)
编辑
我已经创建了。

谢谢您的回复!在客户端调用压缩工作中,Jetty和Sec WebSocket扩展是正确的。