我使用的是nodejs,我之所以从php套接字服务器切换到nodejs是因为它具有线程功能。 (基本上,我希望我的游戏服务器中的怪物能够自动攻击玩家)。
让我们在我的sever.js文件中说出我输入的节点:
setInterval(function(){
console.log('Hello');
}, 1000);
我在一个浏览器上登录并验证我的角色,然后看看我能看到的控制台'你好'每秒输出一次。没问题,但是我加载了一个新浏览器,验证了另一个用户,然后查看了控制台.. 实际输出的速度是原来的两倍,这实际上不是正确的方法做对了吗?
编辑:我使用https://github.com/websockets/ws并且setInterval函数位于
之下socket.on('message', function(Message, flags) {
~~~gameserver authentication /blah mysql blah ~~
setInterval(function(){
console.log('Hello');
}, 1000);
})
希望这会有所帮助,抱歉不够具体。
答案 0 :(得分:1)
您的脚本是为每个用户运行的(因为那是服务器)。当然,您可以收听并发送给特定用户。您需要为每个生成一个emit,或者以只向所需客户端发送数据的方式写入emit。
这可能会对您有所帮助: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.