Avatar ·

Qu'est-ce que le Long-Polling, les WebSockets, SSE et Comet ? Comment les implémenter en PHP ?

Bonjour à tous ! Je suis un développeur PHP débutant et j'ai récemment été confronté à une tâche : créer un chat sur un site pour que les messages arrivent sans rechargement de la page. Je connais AJAX, mais il faut envoyer constamment des requêtes, ce qui n'est pas efficace. J'ai commencé à chercher sur Google et je suis tombé sur des termes : Long-Polling, WebSockets, Server-Sent Events (SSE) et Comet. Honnêtement, je suis confus. Pour l'instant, je comprends ceci : le Long-Polling, c'est quand le client envoie une requête et le serveur la maintient ouverte jusqu'à ce qu'un nouveau message apparaisse. Mais comment l'implémenter en PHP ? PHP est monothread, il ne peut pas rester longtemps en attente, sinon la mémoire va s'effondrer. Les WebSockets sont une connexion permanente, mais j'ai entendu dire que PHP n'est pas très adapté pour cela, il faut utiliser Node.js ou Go. Et SSE, c'est une sorte de flux de données du serveur vers le client, mais cela ne fonctionne que dans un sens. Comet semble être quelque chose d'ancien. Voici un exemple simple de polling AJAX que j'utilise actuellement (en PHP) : ```php // poll.php $lastId = $_GET['last_id'] ?? 0; $m