From 858a1d13e4909761c1aa8c48c5a3f0cf22746413 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Tue, 28 Oct 2025 15:05:36 +0800
Subject: [PATCH] 2025-10-28 zwy 更新WebSocket代码,校验用户。

---
 ard-sample/src/main/java/com/ard/sample/component/websocket/interceptor/DockHandshakeInterceptor.java |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/ard-sample/src/main/java/com/ard/sample/component/websocket/interceptor/DockHandshakeInterceptor.java b/ard-sample/src/main/java/com/ard/sample/component/websocket/interceptor/DockHandshakeInterceptor.java
new file mode 100644
index 0000000..165b8b8
--- /dev/null
+++ b/ard-sample/src/main/java/com/ard/sample/component/websocket/interceptor/DockHandshakeInterceptor.java
@@ -0,0 +1,29 @@
+package com.ard.sample.component.websocket.interceptor;
+
+import org.springframework.http.server.ServerHttpRequest;
+import org.springframework.http.server.ServerHttpResponse;
+import org.springframework.web.socket.WebSocketHandler;
+import org.springframework.web.socket.server.HandshakeInterceptor;
+
+import java.util.Map;
+
+public class DockHandshakeInterceptor implements HandshakeInterceptor {
+
+    @Override
+    public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response,
+                                   WebSocketHandler wsHandler, Map<String, Object> attributes){
+        //从路径中获取userId
+        String path = request.getURI().getPath();
+        String[] segments = path.split("/");
+        if (segments.length > 2) {
+            String userId = segments[segments.length - 1];
+            attributes.put("userId", userId);
+        }
+        return true;
+    }
+
+    @Override
+    public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response,
+                               WebSocketHandler wsHandler, Exception ex) {
+    }
+}

--
Gitblit v1.9.3