-
Notifications
You must be signed in to change notification settings - Fork 2
L9: Practica 3_1
- Tiempo: 2h
- Fecha: Martes, 27 de Abril de 2021
-
Objetivos de la sesión:
- Enunciado práctica 3
- Practicar con websockets usando la biblioteca socket.io
- Introducción
- Práctica 3 (ESPECIFICACIONES)
- Actividades NO guiadas
- Resumen de tareas a realizar
- Conclusiones
- Autores
- Licencia
- Enlaces
En esta práctica vamos a programar una aplicación Web de Chat, utilizando websockets a través de la biblioteca Socket.io
Este es el chat que realizó Maria Guadaño en el curso 2019-2020
Hacer una aplicación Web de Chat, en el que múltiples usuarios puedan hablar entre sí a través del Navegador. La aplicación consiste en un programa servidor hecho en node.js, al que se conectan los clientes desde los navegadores. Cada vez que un usuario se conecte al servidor se le enviará un mensaje de bienvenida, que sólo él verá, y aunciará al resto de participantes que se ha conectado alguien nuevo
Para el intercambio de datos entre los clientes y el servidor se utilizará la biblioteca socket.io. Además, la aplicación web se desarrollará utilizando el paquete express de Node
Cada mensaje enviado por uno de los participantes será visible para el resto. El servidor se encargará de esta tarea. Además, el servidor responderá a estos comandos especiales. La respuesta sólo la verá el cliente que haya enviado el comando (El resto NO lo verán)
- /help: Mostrará una lista con todos los comandos soportados
- /list: Devolverá el número de usuarios conectados
- /hello: El servidor nos devolverá el saludo
- /date: Nos devolverá la fecha
Cuando el servidor detecta que llega un mensaje que empieza por el carácter '/', lo interpretará como un comando y lo procesará (pero no lo enviará al resto de usuarios del chat). El resto de mensjaes que no sean comandos sí los re-enviará a los participantes del chat
Debes hacer una documentación técnica y un manual de usuario, ambos en markdown en la wiki de la práctica P3. Si haces mejoras, índicalas explícitamente en la documentación
Puedes incluir las mejoras que consideres (¡Imaginación al poder!). No olvides indicarlas en la documentación. Algunas propuestas de mejoras:
- Incluir sonidos cuando se reciben mensajes
- Permitir que los usuarios tengan nicknames
- Añadir la funcionalidad de "El usuario x está escribiendo..."
- Mostrar los usuarios que están conectados
- Mensajes directos entre usuarios
Para desarrollar esta práctica se proponen los siguientes ejercicios:
Haz los ejemplos del 1 al 6 de Websockets, que se mostrarón en la Sesión 9 de teoría. Súbelos al repo de la práctica P3, en la carpeta S9. con estos ejemplos te familiarizadas con los Websockets en general
Haz los ejemplos del 7 al 9 de la Sesión 9 de teoría. Con ellos aprenderás a poner en marcha y utilizar la biblioteca Socket.io. Y además tendrás listo un pequeño Mini-chat. Súbelos a la carpeta P3/S9
Piensa sobre cómo implementar el resto de funcionalidad pedida
- Ejercicios 1-6 de la Sesión 9 de teoría. Súbdelos a la carpeta P3/S9
- Ejercicios 7-9 de la Sesión 9 de teoría. Súbdelos a la carpeta P3/S9
- Piensa sobre tu práctica. Implementa lo que falta
Tras finalizar la práctica P3-1, deberías saber lo siguiente:
- Comunicar un cliente y un servidor a través de Websockets
- Tener claro el funcionamiento del chat
- Saber poner en marcha y manejar la bilioteca Socket.io tanto en el cliente como en el servidor
- Juan González-Gómez (Obijuan)
- Jose María Cañas
- S0: Presentación
- S1: Lenguajes de marcado. Markdown
- S2: Node.js
- S3: Node.js. Módulos
- S4: XML
- S5: JSON
- S6: Formularios y Cookies
- S7: Peticiones AJAX
- S8: NPM. Paquetes node.js
- S9: Websockets
- S10: Electron
- S11: A-frame
- S12: DJANGO
Prácticas y sesiones de laboratorio
- L5: Datos de la tienda y JSON
- L6: Login, carrito, pedidos
- L7: Búsquedas
- L8: ¡Oxígeno!. Tiempo de laboratorio para que avances con tu práctica
- L11: Home chat
- L12: Laboratorio puro. NO hay contenido nuevo (17-Mayo)
- L13: Laboratorio/Tutorias. No hay contenido nuevo (18-Mayo)