Avatar ·

¿Qué son Long-Polling, WebSockets, SSE y Comet? ¿Cómo implementarlos en PHP?

¡Hola a todos! Soy un desarrollador PHP principiante y estoy escribiendo un chat simple en un sitio web. Actualmente funciona así: el usuario envía un mensaje mediante AJAX, se guarda en la base de datos, y otros usuarios actualizan la página manualmente (F5) para ver los nuevos mensajes. ¡Esto es terriblemente incómodo! He oído que existen tecnologías para «tiempo real»: Long-Polling, WebSockets, SSE y Comet. Pero estoy confundido con los términos. Según tengo entendido, ¿Comet no es una tecnología, sino un patrón? Necesito que los nuevos mensajes aparezcan para todos los usuarios de inmediato, sin recargar la página. Uso PHP 8.2, Apache y MySQL. Por favor, indíquenme qué enfoque elegir para el chat. Probé una solución simple con setInterval() cada 2 segundos, pero el servidor comienza a ralentizarse con 20 usuarios. Aquí hay un fragmento de mi código actual (verificación de nuevos mensajes): ```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 = $