簡體   English   中英

Node.js服務器重新啟動時,套接字ID會如何處理?

[英]What happens to socket IDs when Node.js server restarts?

我正在使用Node.js和socket.io進行多人游戲。 有游戲室,玩家可以加入不同的房間。 那部分工作正常。

現在,我想為節點服務器由於任何原因崩潰的可能性做好准備。 我讓Node備份數據到Redis,如果崩潰,它會自動重新啟動,從Redis取回數據並繼續正常操作。

無論如何,這就是我想要的,但是我對一件事感到困惑。 由於每個套接字均由其ID標識,因此服務器如何在重啟后知道哪個用戶訂閱哪個房間? 套接字ID仍然有效嗎? 還是需要以某種方式重新分配它們(大概基於唯一的用戶ID)?

老實說,我從未使用過socket.io,但是我曾經使用過sockjs。 我不知道實現上的區別是什么,但是sockjs的每個連接也都由其自己的ID標識(據我所知,它是UUID)。 但是,每次用戶重新連接時,ID都會更改,因此,我認為這不是識別用戶的有用方法。

也許您應該存儲一些固定的用戶標識(例如電子郵件地址,用戶名),然后通過該參數重新定位用戶(這就是我通常在做的事情)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM