Есть много способов реализовать это.
Вы можете реализовать это простым опросом.
Проверять клиентов по определенному интервалу и подсчитывать количество ответивших клиентов.
Это значение можно использовать как количество онлайн-пользователей.
Я думаю, что лучший способ - использовать технологию push, вместо того, чтобы проверять людей в сети каждые x секунд или x минут.
Он просто сообщает серверу, когда люди входят и выходят по событию.
Таким образом, сервер просто увеличивает или уменьшает переменную подсчета пользователей онлайн, когда события приходят от клиентов.
Я рекомендую Socket.IO , APE , чтобы посмотреть.
Также есть много других вопросов, таких как XMPP , Jabber .