jak wykryć utratę połączenia użytkownika lub zamknąć okno przeglądarki w Nodejs socket.io

Mam aplikację do czatu na Node.js i Socket.io, użytkownik może się połączyć i rozłączyć za pomocą przycisku ... Mam listę użytkowników online, która jest doskonale zarządzana za pomocą moich zdefiniowanych zdarzeń, które użytkownik uruchamia.

Ale problem polega na tym, że nie mogę wykryć, czy użytkownik utracił połączenie lub zamknął okno przeglądarki, nie odłączając się ręcznie (za pomocą przycisku rozłączenia) ...

To zdarzenie socket.io jest uruchamiane tylko wtedy, gdy użytkownik rozłączy się nie wtedy, gdy utraci połączenie.

socket.on('disconnect',function(){
   console.log('user disconnected');  });

Chcę, aby jakiś naprawdę dobry mechanizm pilnował użytkowników, aby aktualizować listę użytkowników online.

questionAnswers(1)

yourAnswerToTheQuestion