spring cloud版本:Hoxton.SR1
spring cloud gateway 使用默认的 netty
问题:
使用websocket,通过spring cloud gateway转发传送数据大于64kb时会丢失数据,查看源码发现netty中默认websocket限制大小是64k。
原因(有兴趣的可以查看下源码):
ReactorNettyWebSocketClient 这个类下面的 maxFramePayloadLength。
解决方法:
在 gateway 项目的配置文件中加入下面这句话并设置大小。
spring:
cloud:
gateway:
httpclient:
websocket:
max-frame-payload-length: 10485760 # 需要设置的大小
官方文档地址:https://docs.spring.io/spring-cloud-gateway/docs/2.2.7.RELEASE/reference/html/appendix.html