package com.ard.sample.component.websocket.config; import com.ard.sample.component.websocket.handler.*; import com.ard.sample.component.websocket.interceptor.DockHandshakeInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.config.annotation.EnableWebSocket; import org.springframework.web.socket.config.annotation.WebSocketConfigurer; import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; @Configuration @EnableWebSocket // 启用原生WebSocket支持 public class WebSocketDockConfig implements WebSocketConfigurer { @Autowired private DockWebSocketHandler dockWebSocketHandler; // 注册WebSocket处理器和路径 @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { // 1. 注册处理器:路径 "/ws/dock/**" 由 DockWebSocketHandler 处理 // 2. 添加握手拦截器:验证用户身份DockHandshakeInterceptor // 3. 配置跨域:允许所有域名(生产环境需限制) registry.addHandler(dockWebSocketHandler, "/ws/dock/**") .addInterceptors(new DockHandshakeInterceptor()) .setAllowedOrigins("*"); } }