testing套接字是否仍然打开
按照我上一个问题的说明 ,我现在在socket.io中有一组连接的用户。 我的问题(我在答案中被警告)是,甚至在浏览器断开之后,套接字仍然保留在这个数组中。
我尝试从socket.on('disconnect'
函数中删除数组中的socket.on('disconnect'
,但是在浏览器断开连接并且socket.io触发断开连接之间仍然存在〜1分钟的延迟。
什么是“testing”一个套接字来查看它是否真正活着的最好方法? 我很想尝试发送消息并捕获任何错误,但我觉得有一个更优雅的解决scheme。
我的断开处理程序中有一个错误。 我最终使用的是:
socket.on('disconnect', function() { users.splice(users.indexOf(socket), 1); });
socket.on('end',function(){ //your code })
要么
socket.on('error',function(err){ //in case of any errors })
断开事件不会触发,直到所有的客户端已断开连接!