【发布时间】:2017-11-17 21:51:41
【问题描述】:
我刚刚开始尝试使用 NodeJS 和 socket.io 创建一个简单的多人在线游戏(类似于在线国际象棋的想法)。如果我的问题的答案真的很明显,我深表歉意,因为我已经尝试过谷歌搜索,但我认为我缺少一些关键的理解。
基本上,我需要在应用程序运行时在服务器上存储一些东西。例如:
- 我需要存储哪些套接字连接是主机,哪些是播放器。
- 我需要存储每场比赛的当前状态(例如,在国际象棋的情况下,棋子在哪里以及轮到谁了)
- 如果能够存储所有 socket.io“房间”也很好。
此时请随意回答问题,以下信息仅供参考。
我在网上尝试或看到了一些东西:
- 当我使用“持久性”搜索某些内容时,我会根据保存到数据库或其他内容获得结果,我认为这不是我想要的。
- 我尝试在 NodeJS 文件的顶部添加变量,就像在普通 JS 文件中添加全局变量一样。这似乎可行,但我感觉不对,如果有人能解释这是如何工作的,那就太好了。
- 我还看到了称为会话变量的东西,我想这可能是我想要的。
- 我见过一些应用程序通过在客户端和服务器之间来回传递信息来做到这一点,但我希望客户端不能仅仅通过编辑信息来“破解”游戏。
感谢任何帮助或解释。
【问题讨论】:
-
通常当人们谈论持久性或会话时,他们想要在应用程序生命周期之外持续存在的东西。在运行时存储应用程序所需的数据正是变量的用途。在 Node 中,顶级变量是模块(即文件)的本地变量,因此污染全局空间不是问题。没有具体细节,很难给出更好的答案。
-
感谢您的回答,真的很有帮助。
标签: node.js session websocket socket.io session-variables