Chat - Protocolo

Introducción

Este protocolo abarca las comunicaciones básicas entre el chat del cliente y el servidor de chat.

Tipos de Mensajes:

  • Mensajes de informacion enviados por el servidor: Mensajes con comando "/op" y en el texto de chatdatos se encuentra el texto de información
  • Lista de usuarios: Mensaje con comando "/lista" y como datos un arrayList que contiene los UsuarioChat de los que se extraen los nombres de los usuarios que hay en el canal
  • Mensajes de error: Mensajes con comando "/error" y como datos el texto del error
  • Mensajes de conversacion normal: Mensajes con comando "/dice" y como datos una instancia de chatDatos que contiene el texto del mensaje, sus atributos de estilo y el usuario origen. Estos mensajes los reciben todos los uaurios que hay en el canal.
  • Mensajes de conversacion privada: Mensajes con comando "/susurro" y como datos una instancia de chatDatos que contiene el texto del mensaje, sus atributos de estilo, el usuario origen y el usuario destino. Este mensaje solo lo recibe el usuario destino.
  • Mensajes de zumbido: Mensajes con comando "/zumbido" y como datos una instancia de chatDatos que contiene el usuario origen y el usuario destino. Este mensaje solo lo recibe el usuario destino.

Implementación

Los mensajes que envía el cliente de chat son objetos de la clase Mensaje. Estos objetos contienen un String que describe el tipo de comando y unos datos de la clase ChatDatos

Acción Sentido Comando Origen Destino Info
Enviar un mensaje de informacion Servidor a cliente /op Servidor Todos los usuarios del canal String Texto informativo
Enviar la lista de usuarios del canal Servidor a cliente /lista Servidor Todos los usuarios del canal ArrayList«UsuarioChat» Lista de usuarios
Enviar un mensaje de error Cliente a servidor /error Servidor Todos los usuarios del canal String Texto de error
Enviar un mensaje de chat 1a. Servidor a todos los clientes
1b. Cliente a servidor
/dice 1a. Servidor
1b. Cliente
1a. Todos los usuarios del canal
1b. Servidor
ChatDatos datos del mensaje
Enviar un mensaje de chat privado 1a. Servidor a cliente destino
1b. Cliente a servidor
/susurro 1a. Servidor
1b. Cliente
1a. Un solo cliente
1b. Servidor
ChatDatos datos del mensaje
Enviar un zumbido 1a. Servidor a cliente destino
1b. Cliente a servidor
/zumbido 1a. Servidor
1b. Cliente
1a. Un solo cliente
1b. Servidor
ChatDatos datos del mensaje