2012-05-26 36 views
0

我如何使用Node.js建立一個網站/應用,表達和nowjs。一旦用戶登錄我的網站,他們可以使用箭頭鍵(除了其他服務)移動精靈。第i個用戶的精靈位置保持在服務器端。Node.js - 同時輸入2個用戶同時搞亂數據?

user[i] = { x : 0; y : 0 } 

將箭頭按鍵發送到服務器以更新精靈位置。

E.g. user[5].x += 5. 

我不希望兩個用戶共享相同的位置(「碰撞」)。所以,當服務器收到按鍵時,服務器端函數會檢查結果座標是否等於「用戶」數組中的某些座標,如果是,則忽略該移動。

問題:如何處理的情況下,當兩個用戶選擇在完全相同的時間移動到座標?如果我理解正確,服務器端函數將同時被調用,並且兩個用戶最終會在相同的座標上,因爲在檢查時,沒有人擁有那組座標嗎?

或者說,我是安全的,因爲如果2個客戶端的同時調用服務器端函數(例如使用nowjs),一個功能將陸續總是被處理?

回答

1

在node.js中的JavaScript代碼是在單個線程中執行,所以你應該是安全的。如果您正在使用異步庫來計算單獨線程中的衝突,那麼您將面臨風險,但聽起來並不像這樣。

+0

啊謝謝你的答覆。 :) – Legendre

3

的Node.js是單線程的,什麼也沒發生「在同一時間」。你總是會先走一步。

+0

我明白了。謝謝! :) – Legendre

相關問題