为每个线程/用户隔离setInterval?

我正在使用nodejs,并且我从一个php套接字服务器切换到nodejs的原因之一是因为线程能力。 (本质上,我想让我的怪兽在游戏服务器上自动攻击玩家)。

让我们说在我的节点sever.js文件放:

setInterval(function(){ console.log('Hello'); }, 1000); 

然后我在一个浏览器上login并validation我的angular色,然后查看控制台,我可以看到每秒都会输出“Hello”。 这很好,但我加载了一个新的浏览器,authentication另一个用户,然后看看控制台.. 它实际上输出两倍的速度 ,这不是真正的正确的方法来做到这一点吗?

编辑:我使用的是https://github.com/websockets/ws和setInterval函数就在下面

 socket.on('message', function(Message, flags) { ~~~gameserver authentication /blah mysql blah ~~ setInterval(function(){ console.log('Hello'); }, 1000); }) 

希望这有助于,不够具体不够。

你的脚本是为每个用户运行的(因为这是服务器)。 你当然可以聆听并发送给特定的用户。 你需要为每一个产生一个发射,或者写出这个发射的方式只是把数据发送到所需的客户端。

这可以帮助你: socket.io和node.js发送消息到特定的客户端

评论后编辑

不,脚本将为每个用户运行,所以你开始每个用户的时间间隔。 如果您只想启动一个,您可以:

  1. Name your interval and if it is defined not start it again. 2. Start the interval on a separate script that you run from console or something like that and it is never accessed by clients.