您的位置:首页 > Web前端 > Node.js

解决nodejs websocket.io 重新连接无法接受消息的问题

2014-12-19 10:14 267 查看
场景重现:

websocket 应用到手机网页中的时候,如果关闭手机屏幕网络就会断开,导致用户无法发送信息和接受信息。可以通过io进行重连,但是发送信息成功,无法接受信息。无奈ing。

解决方法:

relogin: function(){
this.socket = io.connect('http://182.254.149.230:8080',{ <span style="color:#ff0000;">forceNew: true </span>});

this.socket.emit('login', {userid:id});

<span style="color:#ff0000;">this.init(1);</span>

},

init : function(re){
if(!re)
this.socket = io.connect('http://182.254.149.230:8080');

/*websocket 的一些监听操作*/
}
window.onload = init();
注意两点:

1、relogin 方法中io.connect后面需要加上参数forceNew,否则无法重连。

2、重连成功之后,需要重新init一下,在init之间所用的websocket依旧为第一次连接时候的websocket,无法继续监听事件。重新init之后,websocket为强制连接之后的websocket。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐