2012-07-05 32 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/