Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js中的socket.io连接过期或超时_Javascript_Node.js_Sockets_Socket.io - Fatal编程技术网

Javascript node.js中的socket.io连接过期或超时

Javascript node.js中的socket.io连接过期或超时,javascript,node.js,sockets,socket.io,Javascript,Node.js,Sockets,Socket.io,我已经翻遍了文档,但没有看到任何专门处理此问题的方法,因此我正在寻找一种可管理的解决方法,以便在一段时间后有效地“过期”或断开socket.io客户端的连接。显然,在node.js上,我需要任何处理这个的事件都是异步和非线程阻塞的 在我看来,这是我想要实现的一个糟糕的例子,但请考虑: 用户连接到房间的最长时间为3分钟: socket.on('connection', function(params){ var maxTime = params.maxTime; socket.joi

我已经翻遍了文档,但没有看到任何专门处理此问题的方法,因此我正在寻找一种可管理的解决方法,以便在一段时间后有效地“过期”或断开socket.io客户端的连接。显然,在node.js上,我需要任何处理这个的事件都是异步和非线程阻塞的

在我看来,这是我想要实现的一个糟糕的例子,但请考虑:

用户连接到房间的最长时间为3分钟:

socket.on('connection', function(params){
   var maxTime = params.maxTime; 
   socket.join(params.roomId);
   setTimeout(function{
   socket.leave(params.roomId);
}, 180000)
});
我觉得这将为1个连接工作良好,但似乎这将导致一些严重的开销,我应该说10000个并发客户端连接到一系列房间吗


有更好的或公认的解决方法吗?

为什么不在客户端跟踪连接时间,而不为此使用任何服务器资源

据我所知,如果只是客户端JS,这会导致滥用。如果客户端失去了连接,我如何向服务器通知断开连接