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
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
WebSocket部署服务器但外网无法连接的解决方法
前言 本文主要给大家介绍了关于WebSocket部署服务器外网无法连接的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 首先要说的是我遇见的问题: WebSocket connection to 'ws://www.xxxx.com/xxx/xx' failed: Error during WebSocket handshake: Unexpected response code: 200 网站绑定到了服务器,直接在服务器上访问webSocket服务是可行的,但是当我
-
WebSocket部署到服务器出现连接失败问题的分析与解决
前言 前段时间在本地写的一个WebSocket程序部署到服务器上时出错,通过一段时间的研究,终于解决了,所以本文就来给大家分析下并给出解决的方法,下面话不多说了,来一起看看详细的介绍吧. 本地环境是:JDK1.8(32位) Tomcat8.0 服务器环境是:JDK1.8(64位) Tomcat8.0 本地运行是正常的. 在服务器部署运行时可以打开页面,并执行WebSocket连接失败并关闭的代码.如图: 问题解决: 1.在Tomcat8部署的项目不要导入catalina.jar和websocke
-
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
今天遇到GD的resizeimage 函数处理jpg后缀文件的缩略图的时候 提示该图片不是合法的jpg图片并报错 <b>Warning</b>: imagecreatefromjpeg(): gd-jpeg, libjpeg: recoverable error: Invalid SOS parameters for sequential JPEG 国内网上查了很多资料也没找到有效的解决办法,原来只要把 GD的jpeg文件支持打开即可解决 ini_set('gd.jpeg_igno
-
腾讯云ubuntu服务器tomcat访问慢的原因分析及解决方法
在腾讯云上配了个一元的学生云,开始一切正常,直到配置tomcat开始出现各种莫名其妙的问题.最莫名其妙的是tomcat启动了,端口也 正常监听,安全组也放行端口了,然后问题来了. 用浏览器访问tomcat主页,会发现超级慢,浏览器一直在等待服务器的响应,从这里可以看出能够接入8080端口,但是服务器没有返回数据.(这个问题折腾几天) 后来在网上找了无数资料,终于发现了原因.tomcat8.0在腾讯云ubuntu14.04上有bug. 问题原因: 随机数引起线程阻塞. tomcat不断启动,关闭,
-
Jquery Ajax请求文件下载操作失败的原因分析及解决办法
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来分析一下失败的原因 一.失败的原因 那是因为response原因,一般请求浏览器是会处理服务器输出的response,例如生成png.文件下载等,然而ajax请求只是个"字符型"的请求,即请求的内容是以文本类型存放的.文件的下载是以二进制形式进行的,虽然可以读取到返回的response,但只是读取而已,是无法执行的,说白
-
tomcat在opensuse下开机自启失败的原因分析及解决方法
环境•opensuse 10.2•tomcat 5.5 设置信息在/etc/init.d/boot.local中添加如下命令:/opt/tomcat/bin/startup.sh 错误描述opensuse启动完毕后,tomcat一直没启动. 分析1. 系统启动完毕后,手动启动tomcat可以成功,说明不是权限的问题.2. 查找系统日志(/var/log/boot.msg),找到了如下信息: Neither the JAVA_HOME nor the JRE_HOME environment va
-
spring cloud eureka 服务启动失败的原因分析及解决方法
目录 环境: 错误log 环境: <spring-boot-version>2.3.5.RELEASE</spring-boot-version> <spring-cloud-version>Hoxton.SR8</spring-cloud-version> 错误log Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerEx
-
Java程序部署到服务器上,接口请求下载文件失败/文件为空/文件名不对的问题
1.问题: 昨天把项目打包放到国产中间件东方通(外部容器,功能类似Tomcat)上时,发现某些请求下载文件的接口不能正确返回文件,而是返回一个空的文件,名称是接口名最后一个词fj, 然而这个功能直接使用IDE启动时没问题的,打包放到Tomcat9上也没问题,那可能是东方通适配问题了 2.原代码: 部署在服务器上系统以后,在线打断点,发现跑到这一部分就在第三行位置执行不下去 response.setContentType("application/force-download"); re
-
Redis偶发连接失败案例实战记录
前言 本文主要给大家介绍了关于Redis偶发连接失败的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 [作者] 张延俊:携程技术保障中心资深DBA,对数据库架构和疑难问题分析排查有浓厚的兴趣. 寿向晨:携程技术保障中心高级DBA,主要负责携程Redis及DB的运维工作,在自动化运维,流程化及监控排障等方面有较多的实践经验,喜欢深入分析问题,提高团队运维效率. [问题描述] 生产环境有一个Redis会偶尔发生连接失败的报错,报错的时间点.客户端IP并没有特别明显的规律,
-
Vue.js项目部署到服务器的详细步骤
前言 最近做完了一个项目,Vue.js 2.0 + vuex + axios,还是有点大的.想着做了这么久,放服务器给朋友们体验一下,帮忙找找BUG,于是就有了研究服务器这一篇文章了. 准备工作 服务器 既然是部署到服务器,肯定是需要一个云的.我这里找基友拿的一个,做测试的话,可以买阿里云的学生机,9.9 一个月,不过不是学生的话就比较麻烦,因为涉及敏感操作都需要验证码. 编译打包 将项目打包成 dist 文件,这里我需要跨域请求一些数据,还写了一个小型服务器, app.js 放到 dist 文
随机推荐
- PHP和正则表达式教程集合之二第1/2页
- python登录QQ邮箱发信的实现代码
- asp.net2.0如何加密数据库联接字符串
- 用javascript实现jquery的document.ready功能的实现代码
- windows中为php安装mongodb与memcache
- 测试PHP连接MYSQL成功与否的代码
- thinkPHP5.0框架URL访问方法详解
- C#设计模式之外观模式介绍
- 解析MySQL数据库性能优化的六大技巧
- smarty实现PHP静态化的两种方法分享
- jQuery的3种请求方式$.post,$.get,$.getJSON
- javascript学习笔记(十四) window对象使用介绍
- 基于node.js express mvc轻量级框架实践
- Java concurrency集合之ConcurrentSkipListSet_动力节点Java学院整理
- jetty运行时无法保存文件的解决方法
- Spring boot + LayIM + t-io 实现文件上传、 监听用户状态的实例代码
- Bootstrap table使用方法汇总
- redis中队列消息实现应用解耦的方法
- iOS应用内实现跳转到手机淘宝天猫的方法
- SpringBoot+Redis执行lua脚本的方法步骤