refactor(pigx-common-websocket): 优化 WebSocket 缓冲区配置并移除 Undertow 依赖

This commit is contained in:
PIGCLOUD committed 2026-05-14 14:13:54 +08:00
1 parent 5f3bff90e1
commit 836fc04a26
2 files changed
+28 -2

No files matched your search

@@ -11,13 +11,15 @@ import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.server.HandshakeInterceptor;
import org.springframework.web.socket.server.standard.ServletServerContainerFactoryBean;
import java.util.List;
/**
* websocket自动配置
* WebSocket 自动配置,注册端点、容器参数和消息处理器。
*
* @author Yakir
* @date 2026-05-14
*/
@Import(WebSocketHandlerConfig.class)
@EnableWebSocket
@@ -37,6 +39,20 @@ public class WebSocketAutoConfiguration {
.addInterceptors(handshakeInterceptor.toArray(new HandshakeInterceptor[0]));
}
/**
* 配置 Servlet 容器的 WebSocket 消息缓冲区大小。允许通过注册自定义 Bean 覆盖默认配置。
*
* @return 配置了文本和二进制消息缓冲区上限的容器工厂 Bean
*/
@Bean
@ConditionalOnMissingBean
public ServletServerContainerFactoryBean servletServerContainerFactoryBean() {
ServletServerContainerFactoryBean container = new ServletServerContainerFactoryBean();
container.setMaxTextMessageBufferSize(webSocketProperties.getMaxTextMessageBufferSize());
container.setMaxBinaryMessageBufferSize(webSocketProperties.getMaxBinaryMessageBufferSize());
return container;
}
/**
* 初始化时将所有的jsonMessageHandler注册到JsonMessageHandlerHolder中
*/
@@ -53,6 +53,16 @@ public class WebSocketProperties {
/**
* 配置的缓冲区大小限制
*/
private Integer sendBufferSizeLimit = 64000;
private Integer sendBufferSizeLimit = 6400000;
/**
* 接收文本消息缓冲区大小限制
*/
private Integer maxTextMessageBufferSize = 6400000;
/**
* 接收二进制消息缓冲区大小限制
*/
private Integer maxBinaryMessageBufferSize = 6400000;
}