Skip to content

L9: Practica 3_1

Juan Gonzalez-Gomez edited this page Apr 5, 2022 · 3 revisions

Sesión Laboratorio 9: Práctica 3-1

  • Tiempo: 2h
  • Objetivos de la sesión:
    • Enunciado práctica 3
    • Practicar con websockets usando la biblioteca socket.io

Contenido

Introducción

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ó Yolanda Lillo en el curso 2020-2021

Práctica 3 (ESPECIFIACIONES)

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

Mejoras

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

Actividades NO guiadas

Para desarrollar esta práctica se proponen los siguientes ejercicios:

Ejercicio 1

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

Ejercicio 2

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

Ejercicio 3

Piensa sobre cómo implementar el resto de funcionalidad pedida

Resumen de tareas a realizar

Conclusiones

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

Autores

Licencia

Enlaces

TEORIA

Soluciones

LABORATORIO

Prácticas y sesiones de laboratorio

Práctica 0: Herramientas

Práctica 1: Node.js: Tienda Básica

Práctica 2: Interacción cliente-servidor. Tienda mejorada

Práctica 3: Websockets: Chat

Practica 4: Electron: Home Chat

  • L11: Home chat (26-Abril-2022)
  • L12: Laboratorio puro. NO hay contenido nuevo (9-Mayo-2022)
  • L13: Laboratorio/Tutorias. No hay contenido nuevo (10-Mayo-2022)

EXAMENES

Curso 2020-2021

Clone this wiki locally