前端WebSocket连接失败问题的排查过程及解决

 更新时间:2025年07月09日 10:47:00   作者:damnItHUA  
WebSocket是一种全双工通信协议,它允许通过单个长久的TCP连接在客户端和服务器之间进行实时双向通信,这篇文章主要介绍了前端WebSocket连接失败问题的排查过程及解决办法,需要的朋友可以参考下

一、WebSocket介绍

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它使客户端(如浏览器)和服务器之间能够建立持久的连接,并进行实时、低延迟的数据交互。与传统的 HTTP 请求-响应模式不同,WebSocket 允许服务器主动向客户端推送数据,非常适合需要即时通讯的应用场景,如在线聊天、实时通知、协同编辑等。

二、环境介绍

机器和相关服务情况如下图所示:

三、遇到的问题

遇到一个问题,就是在客户端(192.168.0.103)上访问 WSL 的 web 页面时,出现了和 Springboot 中打开的 WebSocket 服务连接不上的 bug(但是其它服务可以正确使用)如下图所示:

四、问题排查

然后我先在 WSL 中使用 websocat工具来测试 Springboot 的 WebSocket 服务是否成功开启,结果是已成功开启,如下图所示

之后在写了个简单的 html 网页放在客户端(192.168.0.103)上运行,看是否能成功连接上 WebSocket(使用的 url 为 ws://192.168.0.100:33080/ws/),结果也是可以的,如下图所示

之后在网上找了下解决方案,有提到打包后的前端代码中 WebSocket 的连接路径写死了,在当前客户端机器上无法直接通过该访问路径连接上 WebSocket。然后检查前端代码,找到了建立 WebSocket 连接使用的 URL ,如下图所示

尝试着修改 URL 为 ws://192.168.0.100:33080/ws/ , 然后重新编译并重新加载nginx重启nginx、删除浏览器缓存、重启浏览器,重新打开网页时发现已经成功建立 WebSocket 连接了,如下图所示

五、总结

前端 WebSocket 的连接地址(ws://…)必须是浏览器实际运行页面的客户端能够直连到的地址,而不是以前端项目部署的位置(如 Nginx 容器或 WSL 内部地址)为准。如果写成内部地址或 localhost,只有后端服务器本机能连,外部客户端会连接失败。应根据客户端实际访问的 IP 和端口(如 ws://192.168.0.100:33080/ws/)来设置 WebSocket 地址,确保客户端能直接访问并建立连接。

到此这篇关于前端WebSocket连接失败问题的排查过程及解决的文章就介绍到这了,更多相关前端WebSocket连接失败内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Feign调用中的两种Header传参方式小结

    Feign调用中的两种Header传参方式小结

    这篇文章主要介绍了Feign调用中的两种Header传参方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • springboot 整合 freemarker代码实例

    springboot 整合 freemarker代码实例

    这篇文章主要介绍了springboot 整合 freemarker代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Servlet方法生命周期及执行原理详解

    Servlet方法生命周期及执行原理详解

    运行在服务器端的小程序,Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则,将来我们自定义一个类,实现Servlet接口,复写方法
    2021-09-09
  • 基于SpringBoot实现七天免登录的完整流程

    基于SpringBoot实现七天免登录的完整流程

    作为一名Java后端高级开发,我敢说七天免登录是业务系统里最常见的需求之一,这个需求看似简单,但实现不好很容易踩坑:要么免登录失效影响用户体验,要么出现安全漏洞导致账号被盗,今天这篇文章,我就结合实际工作经验,讲透七天免登录的标准实现方案
    2026-01-01
  • SpringBoot集成Auth0 JWT的示例代码

    SpringBoot集成Auth0 JWT的示例代码

    本文主要介绍了SpringBoot集成Auth0 JWT的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 详解Java豆瓣电影爬虫——小爬虫成长记(附源码)

    详解Java豆瓣电影爬虫——小爬虫成长记(附源码)

    这篇文章主要介绍了详解Java豆瓣电影爬虫——小爬虫成长记(附源码) ,具有一定的参考价值,有需要的可以了解一下。
    2016-12-12
  • Spring cloud oauth2如何搭建认证资源中心

    Spring cloud oauth2如何搭建认证资源中心

    这篇文章主要介绍了Spring cloud oauth2如何搭建认证资源中心,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Java使用FST实现地址逆向解析到区划信息

    Java使用FST实现地址逆向解析到区划信息

    本文介绍了如何使用FST(有限状态转换器)实现地址逆向查询区划信息,首先定义了FST节点和FST类,然后实现地址逆向查询功能,通过遍历地址字符串查找区划名称,最后,讨论了进一步优化的方案,需要的朋友可以参考下
    2025-12-12
  • 基于Maven的pom.xml文件详解

    基于Maven的pom.xml文件详解

    下面小编就为大家带来一篇基于Maven的pom.xml文件详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 在Springboot中处理log4j2日志文件过程

    在Springboot中处理log4j2日志文件过程

    日志切割、分离和清理是日志管理的重要环节,本文介绍了在SpringBoot项目中配置日志切割、分离和清理的步骤,并详细解释了实现原理
    2026-01-01

最新评论