package com.ard.work.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 PTZHandshakeInterceptor implements HandshakeInterceptor { @Override public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map 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); } //从header中获取userId // String userId = request.getHeaders().getFirst("userId"); // if (userId != null) // { // attributes.put("userId", userId); // } return true; } @Override public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Exception ex) { } }