Node.js-来自两个用户的相同输入同时会弄乱数据?

Node.js-来自两个用户的相同输入同时会弄乱数据?,node.js,Node.js,我正在使用node.js、express和nowjs构建一个网站/应用程序。一旦用户登录到我的网站,他们可以使用箭头键移动精灵(除了其他服务)。第i个用户精灵的位置保持在服务器端 user[i] = { x : 0; y : 0 } 箭头键被发送到服务器以更新精灵位置 E.g. user[5].x += 5. 我不希望两个用户共享同一位置(“冲突”)。因此,当服务器接收到按键时,服务器端函数会检查结果坐标是否等于“用户”数组中的某些坐标,如果等于,则忽略移动 问题:当两个用户选择同时移动到

我正在使用node.js、express和nowjs构建一个网站/应用程序。一旦用户登录到我的网站,他们可以使用箭头键移动精灵(除了其他服务)。第i个用户精灵的位置保持在服务器端

user[i] = { x : 0; y : 0 } 
箭头键被发送到服务器以更新精灵位置

E.g. user[5].x += 5.
我不希望两个用户共享同一位置(“冲突”)。因此,当服务器接收到按键时,服务器端函数会检查结果坐标是否等于“用户”数组中的某些坐标,如果等于,则忽略移动

问题:当两个用户选择同时移动到坐标上时,我如何处理这种情况?如果我理解正确,服务器端函数将同时被调用,两个用户最终将位于相同的坐标上,因为在检查时,还没有人拥有这些坐标集


或者,我是否安全,因为如果两个客户端同时调用一个服务器端函数(例如,使用nowjs),一个函数总是会一个接一个地处理?

node.js是单线程的,不会“同时”发生任何事情。你总是先移动一步再移动另一步。

node.js是单线程的,没有任何事情“同时”发生。您将始终有一个移动在另一个之前。

node.js中的javascript代码在单个线程上执行,因此您应该是安全的。如果您使用异步库来计算单独线程上的冲突,您将面临风险,但听起来情况并非如此。

node.js中的javascript代码在单个线程上执行,因此您应该是安全的。如果您使用异步库来计算单独线程上的冲突,您将面临风险,但听起来并不是这样