websocket连接不上、报错、自动关闭,求解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了websocket连接不上、报错、自动关闭,求解相关的知识,希望对你有一定的参考价值。
学WS遇到两个问题:
一:
描述:能够成功连上并调用onopen方法,并且能够收到服务器推送的消息,但是在send发送数据时,提示连接被关闭1002:An unrecoverable IOException occurred so the connection was closed
环境:window7+chrome/360浏览器
websocket初始化方法:
function WS(u, messageF)
var ws = null;
var url = 'ws://localhost:8080/Auction/websocket';
if ('WebSocket' in window)
ws = new WebSocket(url);
else if ('MozWebSocket' in window)
ws = new MozWebSocket(url);
ws.onmessage = function(m)
messageF(m.data);
;
ws.onopen = function()
messageF('Opened');
;
ws.onclose = function(e)
messageF(e.code + ":" + e.reason);
;
ws.onerror = function(e)
for ( var p in e)
messageF(p + "=" + e[p]);
;
this.send = function(m)
ws.send(m);
;
服务器WS:
public void onOpen(Session session, EndpointConfig conf)
this.session = session;
RemoteEndpoint.Basic remoteEndpointBasic = session.getBasicRemote();
session.addMessageHandler(new WSMessageHandler(remoteEndpointBasic));
String message = String.format("* %s %s", nickname, "has joined.");
try
session.getBasicRemote().sendText(message);//这条信息页面能收到
catch (Exception e)
public void onClose()
String message = String
.format("* %s %s", nickname, "has disconnected.");
System.out.println(message);
public void onError(Throwable t)
System.out.println(t.toString());
二:
环境:android4.0+chrome,代码跟上面相同
描述:连不上WS,onopen方法没有被调用,onerror方法被调用,错误信息如下。之后调用onclose,正常关闭,关闭码为1006
三、
环境:android4.0+UC,代码跟上面相同
描述:连不上WS,onopen方法没有被调用,onerror方法也没被调用,onclose被调用,连接被正常关闭,关闭码为1006
求大神,在线等,嫌分少可以再加~~
第一个问题已经解决啦~~求助后两个问题~
有两种方法
把WebSocket的地址改成ws://localhost:8080,后面不要。
2. 是由于web.xml 里面的filter-mapping的url配置错误导致的,原来url 配置的是* 然后改了之后就好了。
WebSocket
WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。
WebSocket通信协议于2011年被IETF定为标准RFC 6455,并被RFC7936所补充规范。
不是这个原因,WS连接写成localhost了。。第一个问题是因为服务器端的MessageHandle写成private的了
参考技术D 第一个问题是怎么解决的?mouse without borders为啥老连接不上?
两台电脑都没有办法连接上
我来说说我自己的解决方案。网上找的各种方案和自己研究的,目前已经做到百分百连接成功!第一步 1. 进入电脑 服务,开启 computer browser服务。
1. 假如启动服务报错或者自动关闭,那么进入windows防火墙,选择例外。勾选 确定,然后启动(或者自动)了服务。搞定。[/list]
2. 衍生一点 c:\windows\system32\drivers\etc下 的hosts文件 添加 127.0.0.1 sso.wsria.com,就可以映射了
第二步 TCP/IP 属性-高级-WINS-启用Netbios
第三步 在A电脑的host中添加B电脑的信息 → ip空格计算机名
在我觉得,第三步是最关键的,可以协助MWB解析局域网的计算机名称,这货是找计算机名字的不是找IP地址的,所以这个方法比在MWB中添加IP 地址解析要更精准。
目前使用还是时不时会自己断开连接,尤其是另一台电脑长时间不适用休眠的时候,但是没关系,使用快捷键ctrl+alt+r可以快速恢复连接,100%好用!
希望帮到楼主 参考技术A 楼主给说说怎么解决的不,以前装过都可以,这次不知道是哪里问题。
以上是关于websocket连接不上、报错、自动关闭,求解的主要内容,如果未能解决你的问题,请参考以下文章
XBOX 360 连接上kinect运行后一次 kinect就一直连接不上一直报错显示错误是 c0022d 官网看了也没用 求解!