¿Qué son Long-Polling, WebSockets, SSE y Comet? ¿Cómo implementarlos en PHP?
¡Hola a todos! Soy un desarrollador PHP principiante y recientemente me enfrenté a una tarea: necesito hacer un chat en un sitio web para que los mensajes lleguen sin recargar la página. Conozco AJAX, pero ahí necesito enviar solicitudes constantemente, lo cual no es eficiente. Empecé a buscar en Google y me topé con términos: Long-Polling, WebSockets, Server-Sent Events (SSE) y Comet. Honestamente, estoy confundido.
Por ahora entiendo esto: Long-Polling es cuando el cliente envía una solicitud y el servidor la mantiene abierta hasta que aparezca un nuevo mensaje. Pero, ¿cómo implementarlo en PHP? PHP es de un solo hilo, no puede estar colgado mucho tiempo, de lo contrario se queda sin memoria. WebSockets es una conexión permanente, pero he oído que PHP no es muy adecuado para esto, que se necesita Node.js o Go. Y SSE es algo así como un flujo de datos del servidor al cliente, pero parece que solo funciona en una dirección. Comet suena como algo antiguo.
Aquí hay un ejemplo de una simple encuesta AJAX que estoy usando ahora (en PHP):
```php
// poll.php
$lastId = $_GET['last_id'] ?? 0;
$m