2012-03-30 183 views
0

好了,我正在开发使用多人游戏: 的Node.js,Sockets.io & Redis的如何从sockets.io启动一个单独的线程引发的线程

反正玩家都能够创建一个游戏,然后开始一个游戏,现在游戏逻辑需要每10秒钟更新一次,所以这是通过调用一个方法完成的,该方法每隔x秒通过setTimeout调用一次。

我担心的是,当连接的客户端连接时,创建一个游戏(启动setTimeout周期),然后断开连接,这将停止任何setTimeout,因此会为所有其他玩家取消游戏。即使setTimeout在用户断开连接时仍然被触发,我仍然希望理想情况下将其单独运行到用户socket.io连接。

有没有一种简单的方法在node.js中启动一个独立的进程/线程? (来自连接的socket.io连接)

回答

1

根据您的目的,也许。比如有这样的:

http://nodejs.org/api/child_process.html

如果这不是它,你可能想看看在节点纤维

+0

因此,whats纤维和子进程之间的区别?而且我发现超时方法实际上在用户断开他们的websocket连接后仍然有效,我应该这样保持吗?或者有没有原因呢? – 2012-03-30 11:18:20

+1

光纤为节点又带来类似线程的功能yield()等 子进程是子进程(不一定是节点,但可能是节点),您可以与节点并行运行 – ControlAltDel 2012-03-30 12:58:13

相关问题