Converse com pessoas aleatórias na internet!
Back-end:
Para meu back-end usei uma configuração Node/Express.js muito simples. Não inclui nenhum controlador ou modelo, pois a funcionalidade do aplicativo era relativamente simples e eu não queria exagerar na minha configuração.
Usei Socket.io para minha funcionalidade de bate-papo em tempo real, ouvindo qualquer coisa emitida por localhost:3000
. Quando os usuários se conectam ao soquete, eles inicialmente examinam as salas do soquete em busca de outros usuários que estejam aguardando para serem emparelhados. Se nenhum outro usuário estiver conectado e aguardando, uma nova sala será criada e o usuário atual aguardará a entrada de outra pessoa. Os usuários também podem sair da sala atual e entrar/esperar para entrar em outra sala com um usuário diferente.
Front-end:
Para meu front-end usei uma implementação React/Redux. Redux foi realmente usado apenas para armazenar o usuário da sessão atual.
Quando os usuários navegam para localhost:3000
eles são solicitados a inserir um nome de usuário. Uma vez inseridos, eles são emparelhados com outro usuário ou solicitados a aguardar que outro usuário entre no chat. Uma vez ingressados, eles podem conversar livremente com outro usuário em uma sessão de chat privada. Eles podem digitar comandos como /delay 1000 message
que aguarda a quantidade de milissegundos inserida antes de enviar a mensagem, ou /hop
que permite que eles saiam do chat atual e entrem em outro ou esperem que outro usuário entre no deles.
Começar é simples! Navegue até o diretório do projeto e digite os seguintes comandos:
$ cd src
$ npm install
$ npm start
Você deve estar pronto e funcionando! Sinta-se à vontade para navegar até localhost:3000
e conferir!