如何关闭socket
发布于 2年前 作者 happywowwow 1509 次浏览

如何关闭后台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呢??

5 回复

在服务端disconnect事件中使用这句:delete players[name[id]];

这样应该只是把该连接移除出队列,而本身并没有销毁这个连接吧。

肯定销毁了啊~

只要客户端浏览器关掉, 就自动disconnect了

回到顶部