2016-09-20 11 views
0

據我們所知,創建套接字是唯一的id.when我的用戶創建空間並邀請用戶加入。我不能保存和存儲加入的用戶房間。當用戶加入房間時,他喜歡服務器存儲此加入,並在disconnet和再次連接後自動加入到最新加入的房間。我可以存儲套接字並自動加入用戶嗎?Nodejs保存房間上的連接插座

我無法找到任何有關這種能力的解決方案。因爲每個連接上都改變了套接字。

是否有簡單的解決方案?在此先感謝

回答

1

您需要爲每個用戶創建某種用戶ID,通常將其存儲在cookie中。然後,如果您想要持久房間,則必須創建自己的服務器端數據結構,以便跟蹤每個用戶需要進入哪個房間。並且,每次在房間中添加或刪除用戶時,都可以修改您自己的數據結構,以便正確跟蹤該狀態。

然後,當用戶連接時,可以從cookie獲取他們的用戶標識並查看數據結構以查看應該將哪個房間放入該連接。然後,爲了保持內存管理,您必須以某種方式過期用戶在經過一段時間的不活動之後才能從數據結構中獲得,因此他們不會永遠留在那裏。 (可能是您上次訪問時的時間戳,然後每小時您瀏覽數據結構並刪除一段時間內未訪問過的用戶)。

如果您希望此信息在服務器重新啓動時也能存活,那麼您必須將其永久保存到磁盤,然後在啓動時重新加載該信息。如果您已經將數據庫用作應用程序的一部分,則可以將信息存儲在數據庫中,或者,如果不是,則可以每隔一段時間將內部數據結構寫入磁盤,可能是JSON,然後再讀取當你的服務器啓動。