问题

使用websocket,通过spring cloud gateway转发传送数据大于64kb时会丢失数据,查看源码发现netty中默认websocket限制大小是64k。

原因(有兴趣的可以查看下源码):

ReactorNettyWebSocketClient 这个类下面的 maxFramePayloadLength。

解决方法

在 gateway 项目的配置文件中加入下面这句话并设置大小。

spring:
cloud:
gateway:
httpclient:
websocket:
max-frame-payload-length: 10485760 # 需要设置的大小