diff --git a/pigx-common/pigx-common-websocket/src/main/java/com/pig4cloud/pigx/common/websocket/config/WebSocketAutoConfiguration.java b/pigx-common/pigx-common-websocket/src/main/java/com/pig4cloud/pigx/common/websocket/config/WebSocketAutoConfiguration.java index 3dd1b3f91..6f9d310c2 100644 --- a/pigx-common/pigx-common-websocket/src/main/java/com/pig4cloud/pigx/common/websocket/config/WebSocketAutoConfiguration.java +++ b/pigx-common/pigx-common-websocket/src/main/java/com/pig4cloud/pigx/common/websocket/config/WebSocketAutoConfiguration.java @@ -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中 */ diff --git a/pigx-common/pigx-common-websocket/src/main/java/com/pig4cloud/pigx/common/websocket/config/WebSocketProperties.java b/pigx-common/pigx-common-websocket/src/main/java/com/pig4cloud/pigx/common/websocket/config/WebSocketProperties.java index 3c78793d2..3a3236cee 100644 --- a/pigx-common/pigx-common-websocket/src/main/java/com/pig4cloud/pigx/common/websocket/config/WebSocketProperties.java +++ b/pigx-common/pigx-common-websocket/src/main/java/com/pig4cloud/pigx/common/websocket/config/WebSocketProperties.java @@ -53,6 +53,16 @@ public class WebSocketProperties { /** * 配置的缓冲区大小限制 */ - private Integer sendBufferSizeLimit = 64000; + private Integer sendBufferSizeLimit = 6400000; + + /** + * 接收文本消息缓冲区大小限制 + */ + private Integer maxTextMessageBufferSize = 6400000; + + /** + * 接收二进制消息缓冲区大小限制 + */ + private Integer maxBinaryMessageBufferSize = 6400000; }