This is an automated email from the ASF dual-hosted git repository.

midnight2104 pushed a commit to branch midnight2104
in repository https://gitbox.apache.org/repos/asf/incubator-shenyu.git

commit 3d51ab2a8c601f21762f5baff4dcf7b462753fb5
Author: midnight2104 <[email protected]>
AuthorDate: Mon Nov 8 13:24:10 2021 +0800

    admin websocket code polish
---
 .../listener/websocket/WebsocketCollector.java     | 47 +++++++++++++---------
 .../listener/websocket/WebsocketListener.java      |  5 ++-
 2 files changed, 30 insertions(+), 22 deletions(-)

diff --git 
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/websocket/WebsocketCollector.java
 
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/websocket/WebsocketCollector.java
index 189b78e..beea5e4 100644
--- 
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/websocket/WebsocketCollector.java
+++ 
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/websocket/WebsocketCollector.java
@@ -34,6 +34,8 @@ import javax.websocket.Session;
 import javax.websocket.server.ServerEndpoint;
 import java.io.IOException;
 import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArraySet;
 
@@ -67,11 +69,10 @@ public class WebsocketCollector {
         if (MapUtils.isEmpty(userProperties)) {
             return StringUtils.EMPTY;
         }
-        Object ipObject = userProperties.get(WebsocketListener.CLIENT_IP_NAME);
-        if (null == ipObject) {
-            return StringUtils.EMPTY;
-        }
-        return ipObject.toString();
+
+        return 
Optional.ofNullable(userProperties.get(WebsocketListener.CLIENT_IP_NAME))
+                .map(Object::toString)
+                .orElse(StringUtils.EMPTY);
     }
 
     /**
@@ -82,14 +83,17 @@ public class WebsocketCollector {
      */
     @OnMessage
     public void onMessage(final String message, final Session session) {
-        if (message.equals(DataEventTypeEnum.MYSELF.name())) {
-            try {
-                ThreadLocalUtils.put(SESSION_KEY, session);
-                
SpringBeanUtils.getInstance().getBean(SyncDataService.class).syncAll(DataEventTypeEnum.MYSELF);
-            } finally {
-                ThreadLocalUtils.clear();
-            }
+        if (!Objects.equals(message, DataEventTypeEnum.MYSELF.name())) {
+            return;
         }
+
+        try {
+            ThreadLocalUtils.put(SESSION_KEY, session);
+            
SpringBeanUtils.getInstance().getBean(SyncDataService.class).syncAll(DataEventTypeEnum.MYSELF);
+        } finally {
+            ThreadLocalUtils.clear();
+        }
+
     }
 
     /**
@@ -124,16 +128,19 @@ public class WebsocketCollector {
      * @param type    the type
      */
     public static void send(final String message, final DataEventTypeEnum 
type) {
-        if (StringUtils.isNotBlank(message)) {
-            if (DataEventTypeEnum.MYSELF == type) {
-                Session session = (Session) ThreadLocalUtils.get(SESSION_KEY);
-                if (session != null) {
-                    sendMessageBySession(session, message);
-                }
-            } else {
-                SESSION_SET.forEach(session -> sendMessageBySession(session, 
message));
+        if (StringUtils.isBlank(message)) {
+            return;
+        }
+
+        if (DataEventTypeEnum.MYSELF == type) {
+            Session session = (Session) ThreadLocalUtils.get(SESSION_KEY);
+            if (Objects.nonNull(session)) {
+                sendMessageBySession(session, message);
             }
+        } else {
+            SESSION_SET.forEach(session -> sendMessageBySession(session, 
message));
         }
+
     }
 
     private static synchronized void sendMessageBySession(final Session 
session, final String message) {
diff --git 
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/websocket/WebsocketListener.java
 
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/websocket/WebsocketListener.java
index dde0838..b246249 100644
--- 
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/websocket/WebsocketListener.java
+++ 
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/websocket/WebsocketListener.java
@@ -26,6 +26,7 @@ import javax.servlet.ServletRequestListener;
 import javax.servlet.annotation.WebListener;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
+import java.util.Objects;
 
 /**
  * The Websocket listener.
@@ -44,7 +45,7 @@ public class WebsocketListener implements 
ServletRequestListener {
     public void requestDestroyed(final ServletRequestEvent sre) {
         try {
             HttpServletRequest request = (HttpServletRequest) 
sre.getServletRequest();
-            if (null != request && null != request.getSession()) {
+            if (Objects.nonNull(request) && 
Objects.nonNull(request.getSession())) {
                 HttpSession session = request.getSession();
                 request.removeAttribute(CLIENT_IP_NAME);
                 session.removeAttribute(CLIENT_IP_NAME);
@@ -58,7 +59,7 @@ public class WebsocketListener implements 
ServletRequestListener {
     public void requestInitialized(final ServletRequestEvent sre) {
         try {
             HttpServletRequest request = (HttpServletRequest) 
sre.getServletRequest();
-            if (null != request && null != request.getSession()) {
+            if (Objects.nonNull(request) && 
Objects.nonNull(request.getSession())) {
                 HttpSession session = request.getSession();
                 request.setAttribute(CLIENT_IP_NAME, 
sre.getServletRequest().getRemoteAddr());
                 session.setAttribute(CLIENT_IP_NAME, 
sre.getServletRequest().getRemoteAddr());

Reply via email to