Как установить максимальный размер буфера для конечной точки сервера веб-сокетов? У меня проблема с закрытием сервера, поскольку клиент отправляет двоичные данные, размер которых превышает Макс. Длина кадра :
[io.net.cha.DefaultChannelPipeline] (vert.x-eventloop-thread-6) An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did no
t handle the exception.: io.netty.handler.codec.http.websocketx.CorruptedWebSocketFrameException: Max frame length of 65536 has been exceeded.
Я просто использую демо Quarkus Websocket: https://quarkus.io/guides/websockets
[ОБНОВЛЕНИЕ]
Я пробовал:
@OnMessage(maxMessageSize = 1048576) // not working!
public void onMessage(ByteBuffer message, @PathParam("username") String username) {
broadcast(message, username);
}
и
quarkus.websocket.max-frame-size=1048576
оба не работают.
[ДРУГОЕ ОБНОВЛЕНИЕ]
Просто добавлю, я провел еще несколько тестов.
В своем коде я добавил это, чтобы проверить реальный максимум установлен размер кадра:
@ConfigProperty(name = "quarkus.websocket.max-frame-size"")
Integer maxFrameSize;
Затем просто запишите его:
@OnMessage
public void onMessage(ByteBuffer message, @PathParam("username") String username) {
System.out.println("Max frame size: " + maxFrameSize);
broadcast(message, username);
}
Вот вывод:
Max frame size: 1048576
2020-04-16 15:29:23,901 WARN [io.net.cha.DefaultChannelPipeline] (vert.x-eventloop-thread-1) An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did no
t handle the exception.: io.netty.handler.codec.http.websocketx.CorruptedWebSocketFrameException: Max frame length of 65536 has been exceeded.
Кажется, что даже параметр установлен фактическим обработчик все еще использует стандартный 65536