Spring Websocket 遇到的坑

1、跨域问题

 经查阅官方文档springwebsocket 4.1.5版本前默认支持跨域访问,之后的版本默认不支持跨域,需要设置

.setAllowedOrigins("*")

  

@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
	registry.addHandler(myWebSocketHandler(), "/echo.do").setAllowedOrigins("*").addInterceptors(new HandshakeInterceptor()); 
																											// �������
	registry.addHandler(myWebSocketHandler(), "/echo").setAllowedOrigins("*").addInterceptors(new HandshakeInterceptor())
				.withSockJS(); 
}

2、*.do配置导致sockjs失效问题

web.xml中添加如下配置
 <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/sockjs/*</url-pattern>
  </servlet-mapping>

websocket配置类中路径中不加sockjs
registry.addHandler(myWebSocketHandler(), "/echo").setAllowedOrigins("*").addInterceptors(new HandshakeInterceptor())
.withSockJS(); 
前端调用时应加上sockjs
 websocket = new SockJS("http://127.0.0.1:8080/WebSocketTest001 /sockjs/echo");

3、filter和servlet配置

web.xml中所有filter和servlet都需要添加如下配置项
<async-supported>true</async-supported>


http://download.csdn.net/detail/dong_19890208/9715594

版权声明:本文为dong_19890208原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。