Chat ao Vivo em tempo real
Este projeto implementa um sistema de chat ao vivo em tempo real usando Redis como banco de dados e Long Polling para comunicação em tempo real.
## Instalação
1. Clone o repositório para o seu servidor web
2. Configure o Redis:
- Edite o arquivo `php/redis-config.php` para ajustar as configurações de conexão do Redis (host, porta, etc.)
- Por padrão, o sistema tenta conectar ao Redis em `127.0.0.1:6379`
3. Certifique-se de que o PHP tenha permissão para executar scripts por mais tempo:
- Ajuste o `max_execution_time` no php.ini para pelo menos 60 segundos
- Ou adicione `set_time_limit(60);` no início dos scripts PHP
## Estrutura do Projeto
- `index.php`: Página principal do chat
- `php/redis-config.php`: Configuração do Redis
- `php/chat-api.php`: API REST para interação com o chat
- `php/long-polling.php`: Endpoint para Long Polling
- `js/long-polling-chat.js`: Cliente JavaScript para o chat
## Funcionalidades
- Chat em tempo real
- Contagem de usuários online
- Respostas a mensagens
- Limpeza automática de mensagens antigas
- Reconexão automática em caso de queda de conexão
## Como Funciona
1. O cliente faz uma requisição HTTP para o servidor
2. O servidor mantém a conexão aberta até que haja uma nova mensagem ou até que um timeout seja atingido
3. Quando uma nova mensagem é enviada ou o timeout é atingido, o servidor responde
4. O cliente processa a resposta e imediatamente faz uma nova requisição
Esta abordagem tem as seguintes vantagens:
- Funciona em qualquer servidor web sem configurações especiais
- Não requer proxy reverso ou WebSockets
- Compatível com todos os navegadores
## Manutenção
Para garantir o funcionamento adequado do sistema, é importante:
1. Manter o servidor Redis em execução
2. Verificar regularmente os logs do PHP para identificar possíveis problemas
3. Ajustar o timeout do Long Polling conforme necessário (atualmente definido para 30 segundos)
## Requisitos
- - PHP 7.4 ou superior
- - Extensão Redis para PHP
- - Servidor Redis
- - VPS/aaPanel
Changelogs
Lançamento inicial Version 1.0 – 23/09/2025