在NodeJS中存储临时variables

我刚开始尝试使用NodeJS和socket.io创build一个简单的多人在线游戏(类似于在线国际象棋的想法)。 我很抱歉,如果我的问题的答案是真的很明显,因为我试着用googlesearch,但我认为我错过了一些关键的理解。

基本上,我需要在应用程序运行时在服务器上存储一些东西。 例如:

  • 我需要存储哪些套接字连接是主机,哪些是玩家。
  • 我需要存储每个游戏的当前状态(例如在国际象棋中,棋子在哪里,轮到谁了)
  • 能够存储所有的socket.io“房间”也是很好的。

请随时回答这个问题,以下信息仅供参考。

有几件事我已经尝试或在网上看到:

  • 当我谷歌与“持久性”的东西,我得到的基础上保存到数据库的结果或东西,我不认为这是我想要的。
  • 我已经尝试在NodeJS文件的顶部添加variables,就像在普通的JS文件中使用全局variables一样。 这似乎工作,但只是感觉错了,如果有人可以解释这是如何工作,这将是伟大的。
  • 我也看到了所谓的会话variables,我想这可能是我想要的。
  • 我看到的应用程序只是将信息传递到客户端和服务器之间,但我宁愿客户端也不能只编辑信息来“破解”游戏。

任何帮助或解释赞赏。

保存到数据库没有错。 如果您的服务器在数秒后崩溃并重新启动,您并不希望每个人的数据都被删除。 我想你正在考虑数据库总是长期和缓慢的方式。 但实际上,这种types的数据库有很好的数据库技术,并且经常使用socket.io。

我可能会select的是Redis ,它是超级快速的,并将数据存储在内存中。 这意味着它不会一直写到磁盘上,而且在像MySQL一样拥有完整的持久性存储空间和通过variables保存在节点内存中的稍微不方便的方法之间还有一段距离。

当reddit创build“地方”,这个大量的多人同时在线用户,他们一起使用Redis和Cassandra。 你可以在这里读一下 。