Максимальный размер буфера веб-контейнера веб-контейнера tomcat составляет 8 КБ, параметр Use ServletServerContainerFactoryBean можно изменить до 64 КБ. Но он не поддерживает Stomp. Я искал различные материалы, чтобы изменить лимит, но все не удалось. Пожалуйста, дайте мне несколько советов, спасибо!
@Configuration
public class MyServerContainerConfigurer{
@Bean
public ServletServerContainerFactoryBean createWebSocketContainer() {
ServletServerContainerFactoryBean container = new ServletServerContainerFactoryBean();
container.setMaxTextMessageBufferSize(64*1024);
container.setMaxBinaryMessageBufferSize(64*1024);
return container;
}
}
Действует в обычном режиме, как показано в следующем примере.
@Configuration
@EnableWebSocket
public class MyWebSocketConfigurer implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new TextWebSocketHandler(),"/endpoint").setAllowedOrigins("*");
}
}
Недопустимо в режиме Stomp, Пример Stomp.
@Configuration
@EnableWebSocketMessageBroker
public class MyWebSocketMessageBrokerConfigurer implements WebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/portfolio").setAllowedOrigins("*");
}
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.setPathMatcher(new AntPathMatcher("."));
config.setApplicationDestinationPrefixes("/app");
config.enableSimpleBroker("/topic", "/queue");
}
@Override
public void configureWebSocketTransport(WebSocketTransportRegistration webSocketTransportRegistration) {
webSocketTransportRegistration
.setMessageSizeLimit(1024 * 1024)
.setSendBufferSizeLimit(1024 * 1024 );
}
}
Журнал ошибок
2020-06-16 13:45:51.226 DEBUG 11628 --- [nio-8080-exec-4] s.w.s.h.LoggingWebSocketHandlerDecorator : StandardWebSocketSession[id=c11461a9-8340-e006-dda9-cf50716694dd, uri=ws://localhost:8080/portfolio] closed with CloseStatus[code=1009, reason=No async message support and buffer too small. Buffer size: [8,192], Message size: [11,020]]
Версия SpringBoot: 2.3.0