Como rastrear o status on-line dos usuários do meu site?

Quero acompanhar usuários que estão on-line no momento.

A definição de estar online é quando eles estão na página de índice do site que tem a função de bate-papo.

Até agora, tudo o que posso pensar é definir um cookie para o usuário e, quando o cookie é encontrado na próxima visita, uma chamada ajax é feita para atualizar uma tabela com seu nome de usuário, seu status online e a hora.

Agora minha pergunta atual é, como posso transformar seu status parafora quando eles saem do site? A única coisa em que consigo pensar é definir uma quantidade predeterminada de tempo sem interação com o usuário e, em seguida, definir o status comofora.

Mas o que eu realmente quero é manter o statusem contanto que eles estejam no site, com ou sem interação, e só vá parafora quando eles saem do site.

questionAnswers(5)

yourAnswerToTheQuestion