我正在开发一个 html5 浏览器多人 RPG,node.js 在后端运行,并带有用于客户端数据传输的 Web 套接字插件。我面临的问题是访问和更新用户数据,正如您可以想象的那样,即使连接的用户很少,这个过程也会每秒发生多次。
我进行了一些搜索,发现只有 2 个支持 MySQL 功能的 node.js 插件,但它们都处于早期开发阶段,我发现查询数据库以获取用户所做的每一个小动作效率不高。
我的想法是让 node.js 在用户连接并检索与该用户相关的所有信息时使用 PHP 访问数据库。然后收集的信息将存储在 node.js 中的 JavaScript 对象中。这将发生在所有玩游戏的用户身上。然后将更新应用于对象。当用户注销时,存储在对象中的数据将更新到数据库并从对象中删除。
需要注意的一点是,我会将不同类型的数据分成不同的对象,这样更常访问的数据不会与会减慢查找速度的数据混合在一起。从理论上讲,如果这个项目获得了很多用户,出于显而易见的原因,我会设置一个上限,即一次可以有多少用户登录到单个服务器。
我想知道这是否是个好主意。拥有大对象会大大降低 node.js 服务器的速度吗?如果您碰巧对我的情况的其他可能解决方案有任何想法,我欢迎他们。
谢谢