• 客户端连接WebSocket服务器时连接失败会出现的一些问题及解决方案


      前段时间自己在本地写的一个WebSocket程序部署到服务器出现了几个错误,我自己也做了记录和分析,最后总结出来给大家看一下,希望能帮助大家规避掉这些问题。同时给现在正在做WebSocket和正准备想做WebSocket的程序猿多指出一条较为效率的路。

    Q1 客户端链接WebSocket服务器时连接失败,报404错误。

       排查了地址错误和配置相关后,是因为JAR冲突,因为Tomcat7及以上,在Tomcat根目录的lib里已经有了websocket-api.jar,部署项目的时候如果项目的wen-inf的lib下也有websocket-api-jar会冲突,导致连接不上。

    Q2 本地运行正常,连接到服务器上时出错

       本地环境:JDK1.8(32位)Tomcat8.0

       服务器环境:JDK1.8(64位)Tomcat8.0

       本地运行是正常的,在服务器部署运行时可以打开页面,并执行WebSocket连接失败并关闭的代码。 

       在Tomcat8部署的项目不要导入catalina.jar和WebSocket-api.jar这两个包,因为Tomcat8自带有这两个包。自己再导入的话会有冲突,还有就是IP写服务器的IP地址,不要写localhost,在调试远程服务器的Websocket程序时,要关闭本地的Tomcat服务器。

    Q3 客户端链接WebSocket服务器成功后,测试消息推送获取session失败。(java WebSocket)

       这时一定要注意,客户端连接服务器时的地址如果使用了localhost:8080/,那么浏览器也一定要使用localhost:8080/,不然两个请求不是同一个session,所以会获取不到。

    Q4 WebSocket链接服务器报302错误

       链接重定向,可以检查一下是不是后台访问机制的问题,还有可以看一下是不是URL路径不对。

      这是我写的WebSocket程序部署到服务器出现的几个错误以及解决方法,如果我下次还会用到WebSocket这块我可能会选择第三方的……不想在这块花太多时间。

      现在免费的第三方WebSocket服务有很多,我就不一一列举了,拿个比较简单容易上手的GoEasy,调用了一个Rest API就OK了。如果你不是专业做服务器的,我建议可以使用这种第三方的,比较节省时间。

    GoEasy地址:www.goeasy.io

    希望这次的解答对你们有所帮助。

  • 相关阅读:
    简单明了理解Java移位运算符
    mybatis(1):入坑篇
    货币格式化
    100 doors
    Object调用静态方法
    Rust入门篇 (1)
    BOM-字节序标记
    【Linux】设定一个能输入中文的英文环境!
    正则表达式验证 输入内容为小数位不超过2位的数值
    创建一个springMVC项目总结
  • 原文地址:https://www.cnblogs.com/goeasycloud/p/9305615.html
Copyright © 2020-2023  润新知