En aquesta pràctica el que inicialment havíem plantetjat és realitzar una expansió del Laboratori 1 (chat). Alguns dels següents punts eren les idees inicials que teniem per implementar, tot i que, a dia d'avui, algunes d'elles no s'han implementat i s'han ficat d'altres.
- Els usuaris puguin assignar-se un color
- Creació i administració de canals del chat
- Eliminació de paraules que no sigui apropiades pel chat.
- Implementació d'una interfície gràfica (resultava molt més problemàtic).
Aquests son alguns dels exemples que havíem plantejat amb anterioritat. Els punts finals que implementa el chat són:
- Manipulació d'opcions d'usuari (Les dades es guarden en un fitxer extern que permet guardar la configuració).
- Canvi de nom d'un usuari
- Assignació de colors per als noms dels usuaris
- Llistats de clients
- Eliminar un client concret o eliminar tot el seu conjunt
- Canviar i crear grups
- Eliminar grups
Iniliciación de un nodo de erlang:
erl -name node@127.0.0.1 -setcookie secret
Compilación y arranque del servidor:
c(server2).
server2:start().
Arrancar un servidor unido al primero:
c(server2).
server2:start({myserver, 'server_node@127.0.0.1'}).
Compilación y arranque de un clients:
c(client).
client:start({myserver, 'server_node@127.0.0.1'}, "Name").
Imprime una lista de todos los clienes conectados entre los distintos servidores.
imprime todos los grupos creados y cada uno de los usuarios que hay dentro de ellos.
Elimina todos los clientes del servidor en concreto.
Elimina a un cliente en concreto.
Redirige a los usuarios a otro servidor disponible.
Envia el mensaje deseado a todos los clientes independiente-mente del gripo en el que esten.
Envia un mensaje privado a un solo cliente.
Cambia el cliente de grupo o crea un nuevo grupo en el caso de que el grupo no este creado.
Abre la lista de comandas que nos permite editar las preferencias de colores y de nombre de nuestro usuario. Dentro de esta lista de comandas tenemos:
- changeName: Nos permite cambiar de nombre
- changeMyColor: Nos permite cambiar el color que aparecen nuestro nombre de usuario al enviar un mensaje.
- changeServerColor: Permite cambiar el color del nombre del Servidor.
- changeWarningColor: Permite cambiar el color de los mensajes de emergencia.
- changeInfoColor: Permite cambiar el color de los mensajes informativos.
- changeMyMessageColor: Permite cambiar el color del mensaje que nosotros hemos enviado
- changeMessageColor: Permite cambiar el color del mensaje recibido.
- exit: Nos permite salir de la lista de comandas
- help: Nos muestra los comandos a realizar
Todas estas preferencias son guardadas en un archivo para manteneralas y evitar su perdida de sesión a sesión.
Des del nostre punt de vista, aquest projecte ens ha anat bé per aprendre amb molt més detall la funcionalitat i programació de l'Erlang. En qualsevol cas, hem invertit molt temps i esforç en aprendre bé la seva programació ja que en la majoria de cassos en ha resultat ser molt complexe. Creiem que hem assolit bé els continguts que se'ns demanava per a la pràctica encara que ens hauria agradat disposar de més temps per expandir el chat a més funcionalitats.