我的Spring 5 webflux WebSocket客户端在服务器发送大消息时抛出异常。有人能告诉我如何增加客户端的帧大小吗?
Flux<String> input = Flux.just(StrJSON);
WebSocketClient client = new ReactorNettyWebSocketClient();
client.execute(new URI(url),
session -> session
.send(input.map(session::textMessage))
.thenMany(
session.receive()
.map(t->t.getPayloadAsText())
.log()
)
.then()
).block();
字符串
间歇性异常:
io.netty.handler.codec.CorruptedFrameException: Max frame length of 65536 has been exceeded.
at io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation(WebSocket08FrameDecoder.java:412)
at io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.decode(WebSocket08FrameDecoder.java:277)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)
.....
型
2条答案
按热度按时间0yycz8jy1#
可能有点晚了。
根据merge request,您应该将客户端设置为
ReactorNettyWebSocketClient
类型,而不是接口WebSocketClient
。然后可以调用
client.setMaxFramePayloadLength(maxFramePayload);
在你的代码中,你应该有:
字符串
ltqd579y2#
@dazito的响应自spring-webflux:5.3以来已被弃用。
请改用:
字符串
来源:javadoc(废弃。支持为WebsocketClientSpec.Builder的提供者提供构造函数参数)