Salut,
Bah justement, Node est fait pour tout ce qui est evenement et c'est exactement ce que tu cherches à faire.
Perso, je le ferais comme ça :
- tu utilises des websockets pour communiquer entre ton serveur et tes clients.
- quand un client veut envoyer un message, il l'envoie au serveur qui le transmet à tous le monde sauf l'emetteur et qui le stocke en bdd.
Je voix juste un problème avec ça : si il y a deux personnes qui envoient un message presque en même temps, ils n'auront peut-être pas la bonne vision du flux (il y avait ce problème sur le client de LoL avant, par exemple). Pour ça, il faudrait que le serveur envoie le message à l'emetteur et que celui-ci ajoute le message au DOM que quand il recoie son propre message du serveur. Comme ça, tout le monde reçoit les messages dans le même ordre.
Tu peux définitivement éliminer AJAX pour un site qui repose principalement sur un chat, c'est bien trop lourd.