Aplicação de chat em tempo real com suporte a múltiplas salas, construída com Node.js, Socket.IO e Express. Usuários entram com um apelido e trocam mensagens instantaneamente com todos os conectados.
O Multiroom Chat é uma aplicação web full-stack que utiliza WebSockets via Socket.IO para comunicação bidirecional em tempo real entre os usuários. Ao acessar, o usuário escolhe um apelido e entra diretamente no chat, onde pode ver quem está online e trocar mensagens ao vivo.
- Entrada no chat com apelido personalizado
- Validação do apelido (obrigatório, entre 3 e 15 caracteres)
- Mensagens em tempo real para todos os conectados
- Notificação automática quando um usuário conecta ou desconecta
- Lista de participantes atualizada dinamicamente
- Back-end: Node.js, Express.js
- WebSocket: Socket.IO
- Template Engine: EJS
- Validação: express-validator
- Front-end: jQuery, CSS customizado
multiroom-chat/
├── app/
│ ├── controllers/ # Lógica de negócio (index, chat)
│ ├── models/ # Modelos da aplicação
│ ├── public/ # Arquivos estáticos (CSS, JS, imagens)
│ ├── routes/ # Definição das rotas Express
│ └── views/ # Templates EJS (index, chat)
├── config/
│ └── server.js # Configuração do Express
├── app.js # Ponto de entrada + configuração do Socket.IO
└── package.json
- Node.js v18+
git clone https://github.com/seu-usuario/multiroom-chat.git
cd multiroom-chatnpm installnode app.jsAcesse em: http://localhost:3000
| Método | Rota | Descrição |
|---|---|---|
| GET | / |
Página inicial com formulário de entrada |
| GET/POST | /chat |
Entra na sala de chat com o apelido |
| Evento | Direção | Descrição |
|---|---|---|
connect |
Cliente → Servidor | Usuário conecta ao servidor |
registrarApelido |
Cliente → Servidor | Registra o apelido do usuário |
enviarMensagem |
Cliente → Servidor | Envia uma mensagem para o chat |
msgParaCliente |
Servidor → Cliente | Distribui mensagem para todos |
atualizarParticipantes |
Servidor → Cliente | Atualiza a lista de usuários online |
disconnect |
Cliente → Servidor | Notifica saída do usuário |
Feito por Carlos Victor