¡Chatea con personas aleatorias en Internet!
Parte trasera:
Para mi back-end utilicé una configuración muy simple de Node/Express.js. No incluye ningún controlador ni modelo, ya que la funcionalidad de la aplicación era relativamente simple y no quería exagerar con mi configuración.
Utilicé Socket.io para mi funcionalidad de chat en tiempo real, escuchando todo lo emitido desde localhost:3000
. Cuando los usuarios se conectan al socket, inicialmente escanean las salas de sockets para buscar otros usuarios que estén esperando ser emparejados. Si no hay ningún otro usuario conectado y esperando, se creará una nueva sala y el usuario actual esperará a que alguien más se una. Los usuarios también pueden abandonar su sala actual y unirse o esperar para unirse a otra sala con un usuario diferente.
Interfaz:
Para mi front-end utilicé una implementación de React/Redux. En realidad, Redux solo se usó para almacenar al usuario de la sesión actual.
Cuando los usuarios navegan a localhost:3000
se les solicita que ingresen un nombre de usuario. Una vez ingresados, se les empareja con otro usuario o se les pide que esperen a que otro usuario se una al chat. Una vez unidos, pueden chatear libremente con el otro usuario en una sesión de chat privada. Pueden escribir comandos como /delay 1000 message
que espera la cantidad de milisegundos ingresada antes de enviar el mensaje, o /hop
que les permite abandonar el chat actual y unirse a otro o esperar a que otro usuario se una al suyo.
¡Comenzar es simple! Navegue hasta el directorio del proyecto y escriba los siguientes comandos:
$ cd src
$ npm install
$ npm start
¡Deberías estar listo y funcionando! ¡Siéntete libre de navegar hasta localhost:3000
y comprobarlo!