Подымаете вебсокеты, отслеживаете onopen, onclose пользователя
Пишите опрос пользователей и по таймауту опрашиваете реализовав ping pong (так как возможны варианты когда не будет onclose )
Другого варианта как бы и нет
Пользователь может зайти и у него отлючиться инетернет
Можно счтитаь активными пользователями тех, которые были активны в течении последнего промежутка времени
Писав лог их посещений.
А если более мене точно то это
WebSocket