Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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 如果通过套接字连接的用户数至少为一个节点,则运行用户定义函数_Javascript_Node.js_Sockets - Fatal编程技术网

Javascript 如果通过套接字连接的用户数至少为一个节点,则运行用户定义函数

Javascript 如果通过套接字连接的用户数至少为一个节点,则运行用户定义函数,javascript,node.js,sockets,Javascript,Node.js,Sockets,我正在试图找到一种方法来停止setInterval(test,5000)函数运行,如果没有用户连接到socket stopsetInterval函数,因为它会造成大量资源浪费 我找到了这个方法,但我不知道怎么说 io.engine.clientsCount //this will tell number of users connected but only inside socket.on function. 下面是我的代码: 如果没有用户连接,如何最好地停止SetInterval(tes

我正在试图找到一种方法来停止
setInterval(test,5000)
函数运行,如果没有用户连接到socket stop
setInterval
函数,因为它会造成大量资源浪费

我找到了这个方法,但我不知道怎么说

io.engine.clientsCount  //this will tell number of users connected but only inside socket.on function.
下面是我的代码:
如果没有用户连接,如何最好地停止SetInterval(test,5000)的执行?

要停止
SetInterval
,请使用
clearInterval

如果您没有/1+连接的用户,是否还需要帮助停止/恢复
setInterval

如果是这样,您可以尝试在计数器的同时管理对setInterval的引用:

var connectCounter = 0;  
var interval = undefined;
然后:

然后:

connectCounter--;

if(connectCounter)这不仅仅是使用clearInterval。我知道clearInterval JS函数。但这里的问题是关于套接字的。函数测试和setInterval不在nsp的范围内。on()套接字连接和连接的总用户数只能在nsp.on()内找到函数,但我不能在socket.on连接中使用setInterval。因为它会为每个连接的客户端运行setInterval。好的。我将在几小时后尝试一下。
var connectCounter = 0;  
var interval = undefined;
connectCounter++;
if (interval === undefined) interval = setInterval(test,5000);
connectCounter--;
if (connectCounter <= 0 && interval !== undefined) interval = clearInterval(interval);