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(); 
 | 
    } 
 | 
  
 | 
} 
 |