Kullanıcı giriş yaptığında kullanıcıya bir session acıyorsunuz. Yani kullanıcı online bu session destroy oldugunda kullanıcı offline. Bu mantık üzerinden gidebilirsiniz.
Ve ya kullanıcılara status belirlersiniz belirli aralıklar ile bunu kontol edersiniz.
Performans açısından jSon öneririm.