2012-03-30 181 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

相關問題