我正在使用node.js、express 和 nowjs 构建一个网站/应用程序。用户登录我的网站后,他们可以使用箭头键(以及其他服务)移动 Sprite 。第 i 个用户的 Sprite 的位置保留在服务器端。
user[i] = { x : 0; y : 0 }
箭头按键被发送到服务器以更新 Sprite 位置。
E.g. user[5].x += 5.
我不希望两个用户共享相同的位置(“冲突”)。因此,当服务器收到按键时,服务器端函数会检查结果坐标是否等于“user”数组中的某些坐标,如果等于则忽略该移动。
问题:当两个用户同时选择移动到坐标上时,如何处理?如果我理解正确的话,服务器端函数将同时被调用,并且两个用户最终将处于相同的坐标上,因为在检查时,还没有人拥有该组坐标?
或者,我是否安全,因为如果 2 个客户端同时调用服务器端函数(例如使用 nowjs),一个函数总是会在另一个函数之后被处理?
最佳答案
node.js 是单线程的,不会“同时”发生任何事情。您将始终先一步迈出另一步。
关于Node.js - 2 个用户同时输入相同的数据会弄乱数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10769533/