WebSocket Unexpected response code: 500

今天想在自己的电脑上实现这个给的例子:http://blog.csdn.net/jiangcs520/article/details/9749867

用EXT框架+WebSocket。

遇到两个问题:

1)用Chrome调试JS脚本(Chrome中F12)的时候发现报错是 很多JS脚本服务器找不到。原来我只是websocket.js里面直接调用到的EXT框架的JS文件考到项目的WEB ROOT下,而这些JS文件关联了EXT其他很多JS文件和图片,这些是没有一起拷过来的。。所以要把整个EXT拷进项目里来才行。


1)WebSocket Unexpected response code: 500.就是JS在websocket = new WebSocket(encodeURI('ws://localhost:8080/WebSocket/message');

这一步的时候总是报"WebSocket Unexpected response code: 500"这个错误。

原因是项目里面就引入了Tomcat的 catalina.jar 和tomcat-coyote.jar这两个JAR包。部署的时候这两个JAR包是被考到WEB-INF下的LIB里的,而TOMCAT本身就有这两个JAR包,所以就是jar包重复咯。

只要删掉WEB-INF -> LIB里的这两个JAR包就好了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误是由于 WebSocket 握手过程中收到了一个意外的响应代码 200 导致的。这通常是由于服务器端的配置问题或网络问题引起的。建议检查服务器端的配置和网络连接,以确保 WebSocket 连接正常运行。 ### 回答2: 出现“error during websocket handshake: unexpected response code: 200”这个错误提示,是因为在建立WebSocket连接时出现了预期之外的回应码。通常来说,WebSocket连接的建立是经过特定的握手协议来实现的,因此这个错误提示一般出现在握手阶段。 具体来说,通常会出现以下几种情况,导致出现这种错误: 1.服务器连接异常:服务器可能出现连接错误、故障或者被关闭等情况,这样就无法与客户端正常完成握手协议,从而导致出现预期之外的回应码。 2.代理或防火墙问题:如果客户端或者服务器连接过程中,经过了代理服务器、防火墙等中间节点,这些中间节点可能会拦截或修改WebSocket连接请求和响应,导致握手失败。 3.浏览器或者客户端问题:有些浏览器或客户端可能不支持WebSocket协议或者其他依赖协议,这样就无法正常完成握手协议。 针对这些问题,可以通过以下措施进行解决: 1.检查服务器连接状态:如果出现预期之外的回应码,需要确认服务器是否正常连接,是否存在故障或者关闭等情况。可以通过Ping命令等方式测试服务器状态,并修复问题。 2.检查代理和防火墙设置:由于代理和防火墙可能会拦截和修改WebSocket连接请求和响应,因此需要检查相关设置,确认是否存在问题,并进行修复。 3.升级浏览器或者客户端版本:如果出现WebSocket协议或者其他依赖协议不兼容的问题,需要升级浏览器或者客户端版本,以支持WebSocket协议和相关依赖。 总之,“error during websocket handshake: unexpected response code: 200”这个错误提示,需要通过检查服务器连接、代理和防火墙设置、浏览器或者客户端版本等措施,来解决出现的握手协议问题,以顺利完成WebSocket连接。 ### 回答3: websocket连接是通过HTTP handshake建立起来的,一旦HTTP请求被发送,服务器收到请求后会返回HTTP响应。如果端点未能正常响应该HTTP请求(例如,返回了非2xx状态码),则WebSocket连接将失败,这时浏览器会抛出错误信息:error during websocket handshake: unexpected response code: 200(websocket握手期间出现错误:预期外的响应状态码:200)。这通常意味着Websocket连接尝试失败,通常由于以下原因导致: 1. WebSocket服务器未正常响应:当WebSocket服务器未返回预期的状态码或帧时,会出现此错误消息。这可能意味着WebSocket服务器出现了问题或无法处理浏览器请求。在这种情况下,应检查WebSocket服务器或应用程序是否正在运行,并且确保WebSocket服务器和应用能够处理来自浏览器的连接请求。 2. 代理或防火墙阻止socket连接:某些代理服务器或防火墙可能会阻止WebSocket连接或WebSocket握手协议。这可能导致Websocket错误并出现"error during WebSocket handshake: unexpected response code: 200"的错误消息。 3. 跨域访问限制:如果WebSocket服务器和浏览器不在同一域中,一些跨域访问限制可能会导致WebSocket连接出现错误并出现"error during WebSocket handshake: unexpected response code: 200"的错误消息。在这种情况下,可以通过设置合适的跨域访问策略或同意使用跨域WebSocket来解决这个问题。 综上所述,当WebSocket连接出现"error during WebSocket handshake: unexpected response code: 200"的错误消息时,我们需要检查WebSocket服务器和应用程序是否正常运行并能够处理来自浏览器的连接请求。同时,还需要检查代理服务器、防火墙或其他网络限制是否阻止了WebSocket连接。如果是跨域访问限制导致问题,我们需要设置合适的策略或使用跨域WebSocket来解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值