【解决】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();
    }
}

学习参考:

你好,我了解你的问题。首先,请确保你的Spring Boot应用程序已经正确地集成了WebSocket,并且WebSocket端点已经被正确地配置。 接下来,确保你的在线测试工具支持WebSocket协议,例如常用的测试工具有Chrome浏览器的DevToolsPostman。如果你使用Chrome浏览器的DevTools,可以按照以下步骤进行测试: 1. 打开Chrome浏览器,并访问你的Spring Boot应用程序的URL。 2. 按下F12键打开DevTools。 3. 在DevTools中导航到"Network"选项卡,并确保选中"WS"过滤器。 4. 尝试连接WebSocket端点,通常是ws://localhost:8080/your-websocket-endpoint。 5. 在DevTools的"Console"选项卡中查看连接状态和任何错误消息。 如果你使用Postman进行测试,可以按照以下步骤进行: 1. 打开Postman,并创建一个新的请求。 2. 设置请求URL为你的WebSocket端点,通常是ws://localhost:8080/your-websocket-endpoint。 3. 发送请求并查看响应状态和任何错误消息。 如果你仍然无法连接WebSocket端点,请检查以下几个可能的原因: 1. 确保你的WebSocket端点路径和端口号与你的Spring Boot应用程序配置一致。 2. 检查防火墙代理设置是否阻止WebSocket连接。 3. 检查服务器端是否正确地处理和响应WebSocket请求。 4. 检查你的应用程序日志,查看是否有任何与WebSocket相关的错误异常。 希望这些提示能帮助到你解决问题。如果你有任何进一步的疑问,请随时提问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白呀白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值