如何关闭后台socket的heartbeat工作
前台
socket=io.connect(‘http://localhost/room3’);
$("#m_quit").on(‘click’,function(){
alert(“123”);
socket.disconnect();
})
后台 socket.on(‘disconnect’,function(data){ console.log(“done”); }); 可是点点击按钮后,后台打出done之后还是会有 emitting heartbeat for client gEICs9YUPNv99Lj6bUiA websocket writing 2:: set heartbeat timeout for client gEICs9YUPNv99Lj6bUiA got heartbeat packet cleared heartbeat timeout for client gEICs9YUPNv99Lj6bUiA set heartbeat interval for client gEICs9YUPNv99Lj6bUiA
这样是不是还没有关闭掉。。。
另外,我在前面,有对各个连接保存socket room3=io.of(’/room3’).on(‘connection’,function(socket){ var session = socket.handshake.session;//session var id=socket.id; name[id] = session.user.name;//session的用户名 players[name[id]]=socket;//保存通信句柄 通过用户名来区分
如何关闭某一个 players[]里的socket呢??
帮顶
在服务端disconnect事件中使用这句:delete players[name[id]];
这样应该只是把该连接移除出队列,而本身并没有销毁这个连接吧。
肯定销毁了啊~
只要客户端浏览器关掉, 就自动disconnect了