package com.ard.route.websocket.interceptor; import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpResponse; import org.springframework.web.socket.WebSocketHandler; import java.util.Map; public class MiHandshakeInterceptor implements org.springframework.web.socket.server.HandshakeInterceptor { @Override public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map attributes) throws Exception { //从路径中获取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 exception) { } }