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)
- 网袋
- 活性网状物
server.compression.enabled: true
但是返回的有效负载仍然是纯文本
有人知道如何解决这个问题吗?谢谢。server.compression.enabled配置属性是关于HTTP响应压缩的,因此这不会达到预期的目标 使用WebSocket,您可以通过协议扩展激活每条消息的压缩,您选择的容器支持它。在握手过程中,必须使用
Sec WebSocket Extensions
在客户端和服务器之间进行协商。因此,在您的情况下,激活它是不够的,您还需要在客户端上启用它。看
默认情况下,某些容器(如最新版本中的Jetty)正在启用这些压缩扩展。在内蒂反应堆的案例中,我不确定情况是否如此
对于接下来的步骤,您可以:
- 检查您的客户端是否正在发送该头并支持此协议扩展
- 切换到Jetty,检查这是否是现成的
- 如果它与Jetty一起工作,而与Reactor Netty不一起工作,则应该这样做,因为Netty基础结构可能缺失(
?)WebSocketServerCompressionHandler
我已经创建了。谢谢您的回复!在客户端调用压缩工作中,Jetty和Sec WebSocket扩展是正确的。