我正在为 iOS 创建一个基于 TCP 的游戏服务器,它涉及注册和登录。用户将作为一个集合存储在 MongoDB 中。登录完成后,我会生成一个唯一的会话 ID -如何?
我想知道节点服务器中保留的所有数据以及可以存储在数据库中的数据。会话令牌或套接字集合(如果我正在维护持久连接等)之类的数据。
Node.JS 默认没有任何会话。事实上,有一个用于管理 MongoDB 会话的插件。
但是,尚不清楚您是否真的需要会话。如果您使用 socket.io 打开一个直接套接字,那是一个事实上的会话。
Node.js 本身不会为您管理会话。它只是将一个 API 暴露给底层的 Unix 设施以进行 Socket 通信。HTTP 本身是一个无状态协议,也没有会话。另一方面,SSH 是一种有状态的协议,但我认为这两种协议都不适合您。
创建一个 uniuqe ID 真的很简单,你需要做的就是散列一些关于用户的数据。他们的SHA(IP address + time + username)
. 见:http ://nodejs.org/api/crypto.html
许多应用程序采用的一种方法是创建自己的协议并使用它发送消息。你将不得不处理很多案件。而且我本人从未处理过移动设备,在这些移动设备中存在严重的连接挑战和缓存要求,而这在台式机上并不是一个大问题。
为了解决这些问题,Scribd 的创始人创办了一家名为 Parse 的公司,它应该让你做事更容易。看看他们的网站:https ://parse.com/ 。
但是,如果您想做一些身份验证,请查看 Everyauth,它为您提供了很多。你可以在这里找到它:https ://github.com/bnoguchi/everyauth/ 。