Avatar ·

O que são Long-Polling, WebSockets, SSE e Comet? Como implementar em PHP?

Olá a todos! Sou um desenvolvedor PHP iniciante e estou criando um chat simples em um site. Atualmente, tudo funciona assim: o usuário envia uma mensagem via AJAX, ela é salva no banco de dados, e os outros usuários atualizam a página manualmente (F5) para ver as novas mensagens. Isso é terrivelmente inconveniente! Ouvi dizer que existem tecnologias para "tempo real": Long-Polling, WebSockets, SSE e Comet. Mas estou confuso com os termos. Pelo que entendi, Comet não é uma tecnologia, mas sim um padrão? Preciso que novas mensagens apareçam para todos os usuários imediatamente, sem recarregar a página. Estou usando PHP 8.2, Apache e MySQL. Me digam, qual abordagem escolher para um chat? Tentei uma solução simples com setInterval() a cada 2 segundos, mas o servidor começa a travar com 20 usuários. Aqui está um trecho do meu código atual (verificação de novas mensagens): ```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 = $