【问题标题】:Nodejs and Mysql for Achievements - Performance and scalabilityNodejs 和 Mysql 的成就 - 性能和可扩展性
【发布时间】:2019-09-05 16:36:25
【问题描述】:

简介

我正在设置一个 Nodejs 服务器(带有 socket.io),它将处理用户的成就并将它们存储在我的 Mysql 数据库中。

问题

每次用户重新加载页面时,Socket io 都会生成一个新的唯一“socket id”,这意味着我要么必须将成就数据存储在 Node 服务器上,要么在每次页面重新加载时再次获取它。

我的问题

  1. 我应该将成就数据存储在我的服务器上 - 还是应该在每次用户需要时获取它?

明智的表现 - 想法

  • 我的头脑告诉我将成就数据存储在节点服务器上 - 因为简单的页面重新加载会导致我的服务器再次获取信息。

【问题讨论】:

标签: javascript mysql node.js socket.io


【解决方案1】:

解决您的问题:

  1. 生成 uuid 客户端并将其存储为 cookie 并将其存储在 localStorage 作为备份。
  2. 在页面加载时检查 uuid。如果不存在,则生成它。
  3. 连接时将 uuid 发送到 socket.io。
  4. 服务器端,使用 uuid 存储和检索成就。您可以选择任何您喜欢的方式来存储这些数据。平面文件,关系数据库,无论你喜欢什么。您甚至可以将其作为对象存储在内存中,以uuid 为键,并定期将对象序列化并存储为 json 文件,这样在崩溃时您可以将 json 文件重新加载为服务器的“状态”。

希望这里的内容足以让您了解解决问题的好方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 2012-05-03
    • 1970-01-01
    相关资源
    最近更新 更多