我正在使用nodejs,我从php套接字服务器切换到nodejs的原因之一是线程能力。 (本质上,我希望游戏服务器中的怪物能够自动攻击玩家)。
假设在我放置的 Node 的 sever.js 文件中:
setInterval(function(){
console.log('Hello');
}, 1000);
我在一个浏览器上登录并验证我的 Angular 色,然后查看控制台,我可以看到每秒都会输出“Hello”。没关系,但是然后我加载一个新的浏览器,验证另一个用户的身份,然后查看控制台。它的输出速度实际上是原来的两倍,这实际上不是正确的方法吗?
编辑:我正在使用 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 and node.js to send message to particular client
评论后编辑:
不,该脚本将为每个用户运行,因此您为每个用户启动一个间隔。如果您只想启动一个,您可以:
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.
关于javascript - 为每个线程/用户隔离 setInterval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29139654/