- Introdução
- Instalação
- Execução do Projeto
- Comandos Disponíveis
- Regras de Negócio
- Estrutura do Projeto
WeebChat é uma aplicação de chat baseada em WebSockets que permite a criação e gerenciamento de salas de chat. Cada sala é identificada por uma cor única, e os usuários podem enviar mensagens privadas ou gerais, além de criar novas salas ou listar as existentes.
Para instalar e executar o WeebChat, você precisará do Bun, um bundler, transpiler e executor rápido para JavaScript e TypeScript.
- Acesse o site oficial do Bun.
- Siga as instruções de instalação para o seu sistema operacional.
Após instalar o Bun, clone este repositório e instale as dependências:
git clone <url-do-repositorio>
cd <nome-do-repositorio>
bun install
Para iniciar o servidor WebSocket, utilize o comando:
bun run server.ts
Para iniciar um cliente WebSocket, utilize o comando em um terminal separado:
bun run client.ts
/create <nome-da-sala>
: Cria uma nova sala com o nome especificado./join <nome-da-sala>
: Entra em uma sala existente./exit
: Sai da sala atual e volta para a salaall
./list
: Lista todas as salas existentes e o número de usuários em cada uma./who
: Lista os usuários na sala atual./w <id-usuario> <mensagem>
: Envia uma mensagem privada para o usuário especificado.
/create myroom
/join myroom
/exit
/list
/who
/w f8aca74d Olá, como vai?
-
Identificação de Usuários:
- Cada usuário recebe um ID único ao se conectar, exibido como o primeiro bloco de um UUID.
- O ID do usuário é colorido para fácil identificação.
-
Gerenciamento de Salas:
- A sala
all
é a sala padrão e possui uma cor fixa (vermelho). - Novas salas podem ser criadas com o comando
/create <nome-da-sala>
. - Um usuário pode entrar em uma sala existente com o comando
/join <nome-da-sala>
. - Um usuário pode sair da sala atual e voltar para
all
com o comando/exit
. - Todas as salas têm uma cor única, exceto
all
.
- A sala
-
Envio de Mensagens:
- Mensagens enviadas em uma sala são visíveis apenas para os usuários dessa sala.
- Mensagens privadas podem ser enviadas com o comando
/w <id-usuario> <mensagem>
.
-
Notificações:
- Quando um usuário entra ou sai de uma sala, todos na sala são notificados.
- A criação de uma nova sala é notificada para todos na sala
all
.
weebchat/
├── client.ts
├── server.ts
├── package.json
└── tsconfig.json