2012-07-05 28 views
1

我正在为iOS创建基于TCP的游戏服务器,它涉及注册和登录。 用户将作为一个集合存储在MongoDB中。 登录完成后,我生成一个唯一的会话ID - 如何如何使用nodeJS TCP服务器与MongoDB实现会话?

我想知道所有数据保留在节点服务器上的数据和可以存储在数据库中的数据。 数据类似会话令牌或套接字集合,如果我维持持续连接等。

回答

2

Node.JS默认没有任何会话。实际上,有一个plug-in for managing sessions with MongoDB

不清楚你是否真的需要会话。如果你使用socket.io打开一个直接套接字,那是一个事实上的会话。

+0

我在想,如果我使用基于HTTP的通信,我将需要某种用户跟踪, 如果我使用套接字,那么它根本就不是问题。 – 2012-07-06 03:06:21

0

Node.js本身不会为您管理会话。它只是将一个API暴露给Socket通信的底层unix工具。其中的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/