簡體   English   中英

在瀏覽器中處理關閉與刷新選項卡的正確方法

[英]Correct way to handle close vs refresh tab in the browser

我有一個用 NextJS 制作的 web 聊天應用程序,我想在關閉標簽時將用戶從聊天中踢出,但在用戶刷新標簽時沒有任何動作。 我怎樣才能做到這一點? 也必須是移動設備的解決方案。

如果你有一個聊天應用程序,你幾乎肯定會使用 websockets。 如果用戶沒有其他活動的 sockets,則在他們的套接字關閉后一分鍾將用戶從聊天中踢出。

在服務器上,監控每個用戶的 websocket 的打開和關閉。 當用戶打開 websocket 時,將該套接字與服務器的 memory 中的用戶關聯。 當用戶關閉 websocket(這可能是用戶關閉頁面/瀏覽器或刷新頁面的結果)時,檢查他們是否有任何其他活動的 sockets。 如果沒有,設置一個超時時間,比如說,從現在開始一分鍾。 在那一分鍾結束后,檢查用戶是否仍然沒有活動的 sockets。 如果沒有,那么他們還沒有刷新頁面; 他們已經完全關閉了,所以踢他們。 如果是這樣,那么他們已經重新連接並且不應該被踢。

每當用戶連接新的 websocket 時,還要清除與用戶關聯的超時。

暫無
暫無

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

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