WebSocket部署到服务器出现连接失败问题的分析与解决
前言
前段时间在本地写的一个websocket程序部署到服务器上时出错,通过一段时间的研究,终于解决了,所以本文就来给大家分析下并给出解决的方法,下面话不多说了,来一起看看详细的介绍吧。
本地环境是:jdk1.8(32位) tomcat8.0
服务器环境是:jdk1.8(64位) tomcat8.0
本地运行是正常的。
在服务器部署运行时可以打开页面,并执行websocket连接失败并关闭的代码。如图:
问题解决:
1.在tomcat8部署的项目不要导入catalina.jar和websocket-api.jar这两个包,因为tomcat8自带有这两个包。自己再导入的话会冲突。
2.
websocket = new websocket("ws://192.168.10.119:8080/rmexpertview/test");
ip要写服务器的ip地址,不要写localhost.
3.调试远程服务器的websocket程序时,要关闭本地的tomcat服务器。
问题分析
1.websocket的ip应该指向服务器ip。最终jsp的代码会在本地浏览器执行,与之连接的ip应该是服务器ip而不该指向本地。
2.包冲突的问题。尤其是tomcat7升级到tomcat8的项目尤其要注意。
3.由于websocket是长连接,如果本地的服务先跑起来,而后服务器的websocket再跑起来,因为websocket地址中的标识字段相同,所以即使服务器挂掉,即使使用服务器的ip去访问依然可以成功,因为访问的其实是本地的tomcat服务器。
demo下载
鉴于跟我寻求demo的人太多,附上下载链接:http://xiazai.jb51.net/201710/yuanma/websocketdemo(jb51.net).rar
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
上一篇: wkhtmltopdf 最好用Html转pdf的工具
下一篇: 日常收集整理的Git常用命令