Error during WebSocket handshake: Unexpected response code:404

1.Tomcat7.X以上才支持WebSocket,使用时有些注解8.X才支持(例如:@ServerEndpoint),要升级为8.X。

2.Tomcat有自带WebSocket所需jar包,无需在项目中添加jar,需要将项目中添加的jar删除(如:websocket-api.jar)。

3.如若使用NGINX代理,需加上如下配置(主要是location /webSocketTest {}):

server {
listen 443;
server_name test.xxxx.com;

access_log logs/test.xxxx.log main;

ssl on;
ssl_certificate /etc/test.xxxx.com.cer;  # 这里是服务端的证书路径
ssl_certificate_key /etc/test.xxxx.com.key; # 这里是秘钥路径
ssl_session_timeout 5m;

location /webSocketTest {
proxy_pass http://test;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
}

}

4.检查请求路径是否正确,项目里面是否设置了拦截器,可能 ws 协议的请求被拦截器拦截下来了。 

希望此文能够帮助到您!

你可能感兴趣的:(java)