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

求大神,在线等,嫌分少可以再加~~
第一个问题已经解决啦~~求助后两个问题~
展开
 我来答
ff458abc
2018-03-31 · TA获得超过6105个赞
知道小有建树答主
回答量:77
采纳率:100%
帮助的人:3.9万
展开全部

有两种方法

  1. 把WebSocket的地址改成ws://localhost:8080,后面不要。

2.  是由于web.xml 里面的filter-mapping的url配置错误导致的,原来url 配置的是* 然后改了之后就好了。

  • WebSocket

  • WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。

    WebSocket通信协议于2011年被IETF定为标准RFC 6455,并被RFC7936所补充规范。

    桃丶梓
    2016-11-04
    知道答主
    回答量:1
    采纳率:0%
    帮助的人:1050
    展开全部
    可能之前的服务没有被完全关闭,查看websocket服务是否被完全关闭,再重新开启服务
    已赞过 已踩过<
    你对这个回答的评价是?
    评论 收起
    百度网友5221e4ebb
    2015-10-29
    知道答主
    回答量:25
    采纳率:0%
    帮助的人:13.5万
    展开全部
    你好,我也遇到了相似的问题,360浏览器显示支持websocket,但调用onError和onClose方法,后台抛异常!可以探讨一下吗,你的问题解决了吗?
    已赞过 已踩过<
    你对这个回答的评价是?
    评论 收起
    icelbja
    2014-04-08 · TA获得超过138个赞
    知道小有建树答主
    回答量:180
    采纳率:100%
    帮助的人:150万
    展开全部
    发送的数据格式不对连接就会自动关闭!
    追问
    不是这个原因,WS连接写成localhost了。。第一个问题是因为服务器端的MessageHandle写成private的了
    已赞过 已踩过<
    你对这个回答的评价是?
    评论 收起
    黑白羽翼wing
    2018-10-22
    知道答主
    回答量:9
    采纳率:0%
    帮助的人:2.4万
    展开全部
    第一个问题是怎么解决的?
    已赞过 已踩过<
    你对这个回答的评价是?
    评论 收起
    收起 3条折叠回答
    推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

    为你推荐:

    下载百度知道APP,抢鲜体验
    使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
    扫描二维码下载
    ×

    类别

    我们会通过消息、邮箱等方式尽快将举报结果通知您。

    说明

    0/200

    提交
    取消

    辅 助

    模 式