From bd3acc63edbdd2e9024f79296310a23a90145613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Wed, 9 Mar 2022 09:28:29 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20Undertow=20=E7=9A=84?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E8=AD=A6=E5=91=8A=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/web/config/CustomizationBean.java | 30 +++++++++++++++++++ .../main/resources/META-INF/spring.factories | 3 +- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/CustomizationBean.java diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/CustomizationBean.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/CustomizationBean.java new file mode 100644 index 00000000..354cf85e --- /dev/null +++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/CustomizationBean.java @@ -0,0 +1,30 @@ +package com.ruoyi.common.web.config; + +import io.undertow.server.DefaultByteBufferPool; +import io.undertow.websockets.jsr.WebSocketDeploymentInfo; +import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory; +import org.springframework.boot.web.server.WebServerFactoryCustomizer; +import org.springframework.context.annotation.Configuration; + +/** + * Undertow 自定义配置 + * + * @author Lion Li + */ +@Configuration +public class CustomizationBean implements WebServerFactoryCustomizer { + + /** + * 设置 Undertow 的 websocket 缓冲池 + */ + @Override + public void customize(UndertowServletWebServerFactory factory) { + // 默认不直接分配内存 如果项目中使用了 websocket 建议直接分配 + factory.addDeploymentInfoCustomizers(deploymentInfo -> { + WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo(); + webSocketDeploymentInfo.setBuffers(new DefaultByteBufferPool(false, 512)); + deploymentInfo.addServletContextAttribute("io.undertow.websockets.jsr.WebSocketDeploymentInfo", webSocketDeploymentInfo); + }); + } + +} diff --git a/ruoyi-common/ruoyi-common-web/src/main/resources/META-INF/spring.factories b/ruoyi-common/ruoyi-common-web/src/main/resources/META-INF/spring.factories index f6c18046..dd9e5079 100644 --- a/ruoyi-common/ruoyi-common-web/src/main/resources/META-INF/spring.factories +++ b/ruoyi-common/ruoyi-common-web/src/main/resources/META-INF/spring.factories @@ -1,2 +1,3 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ - com.ruoyi.common.web.config.I18nConfig + com.ruoyi.common.web.config.I18nConfig,\ + com.ruoyi.common.web.config.CustomizationBean