Este projeto foi desenvolvido com o objetivo de testar o uso do protocolo de comunicação WebSocket. Ele consiste em um servidor backend implementado com Node.js e um frontend estático (HTML, CSS e JavaScript). O projeto permite a interação entre usuários em tempo real através de um chat utilizando WebSocket.
- Node.js (versão 18 ou superior)
- Socket.IO: Para gerenciar conexões WebSocket e fallback para polling.
- Express.js: Para servir os arquivos estáticos do frontend.
- Node.js (versão 18 ou superior) instalado em sua máquina.
-
Clone este repositório:
git clone https://github.com/gustavodesousalima/ChatWebSocket.git
-
Navegue até a pasta do backend:
cd backend
-
Instale as dependências do projeto:
npm install
-
Inicie o servidor:
npm run start
-
Acesse a aplicação no navegador em: http://localhost:3000
- O servidor Node.js (arquivo
index.js
) gerencia as conexões WebSocket utilizando o Socket.IO. - O backend serve os arquivos estáticos localizados na pasta
frontend
. - Quando um usuário se conecta, ele pode escolher um nome de usuário e entrar no chat.
- As mensagens enviadas por um usuário são retransmitidas para todos os usuários conectados em tempo real.
- Ao desconectar, o usuário é removido da lista de participantes ativos.
As dependências do backend são especificadas no arquivo package.json
e incluem:
- express: Para criação e gerenciamento do servidor web.
- socket.io: Para comunicação em tempo real entre o cliente e o servidor.
Para o deploy desta aplicação, foi utilizado o serviço EC2 da AWS. Durante a configuração do servidor, foram instalados e configurados os seguintes pacotes: Node.js, Nginx, Certbot (para gerenciamento de certificados SSL) e PM2 (gerenciador de processos para aplicações Node.js).
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests para melhorar este projeto.
Este projeto está sob a licença MIT.