J'ai utilisé l'ajax dans ce but, j'avais un espèce de salon de discussion, et ça envoyait une requête toutes les x secondes, et ça récupérait les derniers messages en raffraichissant le tchat.
J'avais même fait jouer un son quand il y avait un nouveau message :P
Mais je pense pas que ça soit le meilleur moyen. Faut se pencher sur les sockets, avec par exemple NodeJS et socket.io
Graf à fait un tuto y a quelques années d'ailleurs : https://www.grafikart.fr/tutoriels/nodejs/socketio-tchat-366