package com.matrix.config; import com.matrix.component.websoket.WebSocketPushHandler; import com.matrix.core.interceptor.WebSocketInterceptor; import com.matrix.core.tools.LogUtil; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.WebSocketHandler; import org.springframework.web.socket.config.annotation.EnableWebSocket; import org.springframework.web.socket.config.annotation.WebSocketConfigurer; import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; import org.springframework.web.socket.server.HandshakeInterceptor; import org.springframework.web.socket.server.standard.ServerEndpointExporter; /** * * @ClassName: WebSocketConfig * @Description: websocket配置类 * @author jyy * @date 2017年9月26日 上午10:45:45 */ @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Bean public ServerEndpointExporter serverEndpointExporter(ApplicationContext context) { return new ServerEndpointExporter(); } /** * 注册WebSocket处理类 */ @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { LogUtil.info("注册WebSocket处理类"); registry.addHandler(createWebSocketPushHandler(), "/webSocketServer") .addInterceptors(createHhandshakeInterceptor()).setAllowedOrigins("*"); registry.addHandler(createWebSocketPushHandler(), "/sockjs/webSocketServer") .addInterceptors(createHhandshakeInterceptor()).withSockJS(); } /** * * @Title: createHhandshakeInterceptor * @Description: 握手拦截器 * @return */ @Bean public HandshakeInterceptor createHhandshakeInterceptor() { return new WebSocketInterceptor(); } /** * * @Title: createWebSocketPushHandler * @Description: 处理类 * @return */ @Bean public WebSocketHandler createWebSocketPushHandler() { return new WebSocketPushHandler(); } }