Как правильно посчитать время пользователя online?
Думаю, правильнее будет на стороне сервера хранить начало авторизации и при каждом действии пользователя фиксировать "конец". При выходе считать сессию завершенной. При отсутствии действий свыше n секунд - считать "концом" последнюю активность.
Считать любые автоматические запросы активностью пользователя ИМХО неправильно.
Однако, все очень зависит от конкретного случая - и таймауты и способ хранения (таки, текущий онлайн и/или общий). И даже учет автоматических запросов.
Каждую минуту с клиента шлешь через AJAX/websockets запрос на сервер, так и отслеживаешь.