como detectar a conexão desse usuário é perdida ou ele fechou a janela do navegador no Nodejs socket.io

Eu tenho um aplicativo de bate-papo no Node.js e Socket.io, o usuário pode se conectar e desconectar com um botão ... Eu estou tendo uma lista de usuários on-line que é perfeitamente gerenciada com a ajuda dos meus eventos definidos que acionam o usuário.

Mas o problema é que não consigo detectar se o usuário perdeu a conexão ou fechou a janela do navegador sem se desconectar manualmente (pelo botão de desconexão) ...

Este evento socket.io é disparado apenas quando o usuário se desconecta não quando ele perde sua conexão.

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

Eu quero um mecanismo muito bom para ficar de olho nos usuários, a fim de atualizar minha lista de usuários on-line.

questionAnswers(1)

yourAnswerToTheQuestion