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

标签 node.js

我正在使用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/

相关文章:

mysql - 将数据库数据从express.js服务器传递到react.js组件

node.js - Azure 表存储性能

javascript - 使用 puppeteer-core 连接到 Chrome 中当前事件的选项卡

javascript - 验证错误mongodb,node.js和Express后端

javascript - 我正在尝试使用 multer 接收视频文件并将其保存在服务器上

javascript - 如何通过http进行jsonschemavalidation?

node.js - mongoose exec 调用 async.parallel

javascript - Node.js - 无法使用 Fermata REST 客户端将嵌套/转义的 JSON 发布到正文

javascript - 哪个维护: JavaScript function references or Boolean + IF conditions?效率更高

node.js - find() 查询的更短方法