websocket连接不上、报错、自动关闭,求解 150
学WS遇到两个问题:一:描述:能够成功连上并调用onopen方法,并且能够收到服务器推送的消息,但是在send发送数据时,提示连接被关闭1002:Anunrecovera...
学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
求大神,在线等,嫌分少可以再加~~
第一个问题已经解决啦~~求助后两个问题~ 展开
一:
描述:能够成功连上并调用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
求大神,在线等,嫌分少可以再加~~
第一个问题已经解决啦~~求助后两个问题~ 展开
5个回答
展开全部
可能之前的服务没有被完全关闭,查看websocket服务是否被完全关闭,再重新开启服务
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,我也遇到了相似的问题,360浏览器显示支持websocket,但调用onError和onClose方法,后台抛异常!可以探讨一下吗,你的问题解决了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
发送的数据格式不对连接就会自动关闭!
追问
不是这个原因,WS连接写成localhost了。。第一个问题是因为服务器端的MessageHandle写成private的了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询