错误信息:
WebSocket connection to 'ws://192.168.1.159:8080/websocket' failed: Error during WebSocket handshake: Unexpected response code: 403 |
WebSocketServerConfig.java
@EnableWebMvc
@Configuration
@EnableWebSocket
public class WebSocketServerConfig implements WebSocketConfigurer{
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
// 添加拦截地址以及相应的websocket消息处理器
registry.addHandler(new MySocketHandler(), "/websocket")
.addInterceptors(new MyHandshakeInterceptor())
.setAllowedOrigins("*");
registry.addHandler(new MySocketHandler(), "/sockJs")
.addInterceptors(new MyHandshakeInterceptor())
.setAllowedOrigins("*")
.withSockJS();
}
} |
这里setAllowedOrigins设置为*依然报403,
springmvc.xml 配置websocket的allowed-origins="*" 问题解决
<bean id="websocket" class="com.mvc.wt.handler.WebsocketEndPoint" />
<websocket:handlers allowed-origins="*">
<websocket:mapping path="/websocket" handler="websocket" />
<websocket:handshake-interceptors>
<bean class="com.mvc.wt.handler.MyHandshakeInterceptor" />
</websocket:handshake-interceptors>
</websocket:handlers> |
注:spring版本必须4.0.0以上,tomca版本8.5.8
今天在学习springmvc整合websocket时遇到的错误,记录一下,便于后期遇到能快速处理。