2014-04-26 21 views
0

我使用Node.js與socket.io進行多人遊戲。有遊戲室和玩家可以加入不同的房間。這部分工作正常。當Node.js服務器重新啓動時套接字ID會發生什麼變化?

現在,我想爲出於任何原因導致Node服務器崩潰的可能性做好準備。我有Node將數據備份到Redis,如果它崩潰,它會自動重新啓動,從Redis中取回數據並繼續正常操作。

這就是我想要的,但我對一件事感到困惑。由於每個套接字都由其ID標識,服務器如何知道哪個用戶在重新啓動後訂閱哪個房間?套接字ID是否仍然有效?或者他們需要以某種方式重新分配(可能基於唯一的用戶ID)?

回答

1

說實話我從來沒有與socket.io工作過,但我曾與sockjs工作。我不知道什麼是實施差異,但sockjs也有每個連接由自己的ID(這是一個UUID,據我所知)識別。但每次用戶重新連接時ID都會更改,因此我認爲這不是標識用戶的有用方法。也許你應該存儲一些固定的用戶標識(如電子郵件地址,用戶名),並通過該參數重新定位用戶(這就是我通常所做的)。

相關問題