node.js、express、nowjsを使用してウェブサイト/アプリを構築しています。ユーザーが私のWebサイトにログインすると、(他のサービスに加えて)矢印キーを使用してスプライトを移動できます。i番目のユーザーのスプライトの位置はサーバー側に保持されます。
user[i] = { x : 0; y : 0 }
スプライトの位置を更新するために、矢印キーがサーバーに送信されます。
E.g. user[5].x += 5.
2人のユーザーが同じ位置を共有することを望まない(「衝突」)。したがって、サーバーがキーを押すと、サーバー側の関数は、結果の座標が「ユーザー」配列の一部の座標と等しいかどうかを確認し、等しい場合は移動を無視します。
質問:2人のユーザーがまったく同時に座標に移動することを選択した場合、どのように処理しますか?私が正しく理解していれば、サーバー側の関数が同時に呼び出され、チェック時に誰もその座標のセットをまだ持っていないため、両方のユーザーが同じ座標になりますか?
または、2つのクライアントがサーバー側の関数を同時に呼び出すと(たとえば、nowjsを使用して)、1つの関数が常に次々に処理されるため、安全ですか?