【解决】websocket ws连不上或无法连接

普通情况

大致报错内容如图:
在这里插入图片描述
WebSocket 连接失败的原因有很多,主要有以下几点:

  1. 服务器端没有正确配置 WebSocket,导致客户端无法连接。

  2. 网络问题,如网络不稳定,网络延迟等,导致客户端无法连接。

  3. 客户端代码有问题,导致无法正确连接服务器。

  4. 服务器端的防火墙设置不当,导致客户端无法连接。

  5. 服务器端的 WebSocket 服务器没有正确启动,导致客户端无法连接。

代码拦截情况

大致报错内容如图:
在这里插入图片描述
这个很明显能看出来ws连接失败啦。起初我觉得是请求地址的问题,但是经过多次检查这个理由被我pass掉了。

错误原因:

因为我写的是@ServerEndpoint的方式。需要注入ServerEndpointExporter,这个bean会自动注册使用了@ServerEndpoint注解声明的Websocket endpoint。要注意,如果使用独立的servlet容器,而不是直接使用springboot的内置容器,就不要注入ServerEndpointExporter,因为它将由容器自己提供和管理。

解决方式:加入这个配置

@Configuration
public class WebSocketConfig {
    
    
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
    
    
        return new ServerEndpointExporter();
    }
}

学习参考:

猜你喜欢

转载自blog.csdn.net/ruisasaki/article/details/131072417