Ver código fonte

代码优化

24282 8 meses atrás
pai
commit
562e5eba6b

+ 11 - 8
hx-socket/src/main/java/com/fjhx/socket/core/WebSocketServer.java

@@ -22,10 +22,13 @@ import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestBody;
 
-import javax.websocket.*;
+import javax.websocket.OnClose;
+import javax.websocket.OnError;
+import javax.websocket.OnMessage;
+import javax.websocket.OnOpen;
+import javax.websocket.Session;
 import javax.websocket.server.PathParam;
 import javax.websocket.server.ServerEndpoint;
-import java.io.EOFException;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Date;
@@ -119,7 +122,7 @@ public class WebSocketServer {
             List<WebSocketServer> webSocketServerList = webSocketMap.get(userId);
             webSocketServerList.remove(this);
 
-            if (webSocketServerList.size() == 0) {
+            if (webSocketServerList.isEmpty()) {
                 webSocketMap.remove(userId);
             }
         }
@@ -141,11 +144,11 @@ public class WebSocketServer {
      */
     @OnError
     public void onError(Throwable error) {
-        if (error instanceof EOFException){
-            log.error("webSocket连接异常(EOFException)");
-            return;
-        }
-        log.error("webSocket连接异常", error);
+        //if (error instanceof EOFException) {
+        //    log.error("webSocket连接异常(EOFException)");
+        //    return;
+        //}
+        //log.error("webSocket连接异常", error);
     }
 
     /**

+ 19 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/config/WebConfig.java

@@ -0,0 +1,19 @@
+package com.ruoyi.framework.config;
+
+import com.ruoyi.framework.filter.ClientAbortFilter;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class WebConfig {
+
+    @Bean
+    public FilterRegistrationBean<ClientAbortFilter> clientAbortFilter() {
+        FilterRegistrationBean<ClientAbortFilter> registrationBean = new FilterRegistrationBean<>();
+        registrationBean.setFilter(new ClientAbortFilter());
+        registrationBean.addUrlPatterns("/*");
+        return registrationBean;
+    }
+
+}

+ 25 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/filter/ClientAbortFilter.java

@@ -0,0 +1,25 @@
+package com.ruoyi.framework.filter;
+
+import org.apache.catalina.connector.ClientAbortException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import java.io.IOException;
+
+public class ClientAbortFilter implements Filter {
+
+    @Override
+    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+        try {
+            chain.doFilter(request, response);
+        } catch (ClientAbortException e) {
+            // 处理 ClientAbortException
+            // 在这里你可以选择记录日志或执行其他操作
+            // 但这里我们只是简单地忽略它
+        }
+    }
+
+}

+ 3 - 2
ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java

@@ -105,12 +105,12 @@ public class GlobalExceptionHandler {
         String message = e.getBindingResult().getFieldError().getDefaultMessage();
         return AjaxResult.error(message);
     }
-    
+
     /**
      * 管道破裂异常
      */
     @ExceptionHandler(ClientAbortException.class)
-    public Object clientAbortExceptionException(ClientAbortException e) {
+    public AjaxResult handleClientAbortException(ClientAbortException e) {
         return AjaxResult.error(e.getMessage());
     }
 
@@ -121,4 +121,5 @@ public class GlobalExceptionHandler {
     public AjaxResult handleDemoModeException(DemoModeException e) {
         return AjaxResult.error("演示模式,不允许操作");
     }
+
 }