| New file |
| | |
| | | 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) { |
| | | } |
| | | } |