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, j'écris un simple chat sur un site. Actuellement, tout fonctionne ainsi : l'utilisateur envoie un message via AJAX, il est sauvegardé dans la base de données, et les autres utilisateurs actualisent la page manuellement (F5) pour voir les nouveaux messages. C'est terriblement gênant ! J'ai entendu dire qu'il existe des technologies pour le « temps réel » : Long-Polling, WebSockets, SSE et Comet. Mais je suis confus avec les termes. D'après ce que j'ai compris, Comet n'est pas du tout une technologie, mais un pattern ? J'ai besoin que les nouveaux messages apparaissent chez tous les utilisateurs immédiatement, sans rechargement de la page. J'utilise PHP 8.2, Apache et MySQL. Indiquez-moi quelle approche choisir pour un chat ? J'ai essayé une solution simple avec setInterval() toutes les 2 secondes, mais le serveur commence à ralentir avec 20 utilisateurs. Voici un extrait de mon code actuel (vérification des nouveaux messages) : ```php // check_new_messages.php $lastId = $_GET['last_id']; $stmt = $pdo->prepare("SELECT * FROM messages WHERE id > ? ORDER BY id ASC"); $stmt->execute([$lastId]); $messages = $