J'ai développé une application du même genre.
Il ne permet pas d'avoir le status, mais c'est un système de messagerie interne
Si ça t'intéresse, je peut mettre ma base de données et mon controller. Après tu pourras compléter ^^
Pour le status, tu peux mettre un champ pour l'utilisateur, lorsqu'il se connecte tu met l'état à 1. Après si il quitte le site dans se déconnecter, il faut imaginer un truc qui change l'état au bout de 10 minutes par exemple si la personne est plus sur le site.
Si non il y a aussi ce tuto: http://www.grafikart.fr/tutoriels/nodejs/nodejs-socketio-tchat-366