我在用着
我正在尝试使用Sec-WebSocket-Extensions: permessage-deflate
websockets 响应。Netty 自修复507以来支持 websocket 解压(相关问题)
但它不起作用(即,服务器不使用permessage-deflate
请求标头中的提议)
而当我使用jetty with 时spring-boot-starter-jetty
,它开箱即用,无需额外配置。
有谁知道如何解决这个问题?谢谢!
查看spring-webflux框架后,在reactor-netty中默认禁用压缩。实际上,类的默认构造ReactorNettyRequestUpgradeStrategy
函数使用默认值(压缩 = false)创建了类参数值WebsocketServerSpec的实例。
Reactor-netty检查谓词websocketClientSpec.compress()
以建立压缩支持。
所以websocketClientSpec.compress
需要激活该参数。
@Bean
public WebSocketHandlerAdapter handlerAdapter(WebSocketService webSocketService) {
return new WebSocketHandlerAdapter(webSocketService);
}
@Bean
public WebSocketService webSocketService() {
return new HandshakeWebSocketService(
new ReactorNettyRequestUpgradeStrategy(WebsocketServerSpec.builder().compress(true)));
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句