:: Enseignements :: ESIPE :: E4INFO :: 2015-2016 :: Interface Graphique avec Android ::
[LOGO]

Hello ? Is anybody here ?


L'objectif est d'implanter un mini-chat en utilisant le server fourni pour le projet.

Exercice 1 - Utilisation du serveur

Le serveur Python fifoserver utilise python3. Pour lancer le serveur, récupérez l'adresse de votre serveur et tapez dans un terminal :
  python3 fifoserver.py <address>/<port>
      
Vous ne pouvez pas communiquer directement entre deux machines sur le réseau Wifi universitaire (en revanche cela est possible sur le réseau local Ethernet filaire). Vous pouvez donc héberger un serveur sur une machine de la salle et y accéder depuis les autres postes fixes en utilisant l'émulateur. Pour ceux qui utiliseraient des appareils en Wifi, un serveur est temporairement accessible sur http://monge.univ-mlv.fr:12345.

Attention, le serveur Python a vocation à servir de serveur de test et non à être utilisé en production. En particulier, on remarquera que tous les messages sont stockés en mémoire ; le temps passant le serveur occupe de plus en plus de mémoire... vient ensuite le temps de le redémarrer... et tout les messages qu'il abritait sont alors perdus.

Le serveur utilise l'API REST et répond à trois commandes :
  1. / : lorsque la méthode GET est utilisée et que rien n'est transmit dans l'URL, le serveur retourne toutes les files disponibles sous forme d'une liste.
  2. /:salon/:id?timeout=:value : lorsque la méthode GET est utilisée et qu'un salon, l'identifiant du message ainsi qu'une valeur de timeout (en secondes) sont transmis dans l'URL, le serveur retourne le message correspondant sous la forme :
      {
        "author": "authorOfTheMessage",
        "id": idOfTheMessage,
        "timestamp": UNIXTimestamp,
        "message": { ... }
      }
              
  3. /:salon : lorsque la méthode POST est utilisée et qu'un salon est transmis dans l'URL, le serveur attend des données sous la forme :
      author=authorOfTheMessage&message="..."
              
    Il stocke ce message dans le salon designé par l'URL et retourne l'identifiant du message nouvellement enregistré sous la forme :
      {
        "id": id
      }
              

Le serveur retourne toujours le résultat de la requête sous la forme d'une chaîne de caractères en UTF-8 utilisant le format JSON. Il faudra donc faire usage de la bibliothèque org.json pour analyser le résultat.

Exercice 2 - Lister les salons

Pour commencer, nous allons demander au serveur la liste des salons disponibles et nous les afficherons dans le menu de l'application.
Pour cela, redéfinissez la méthode onPrepareOptionsMenu pour qu'à chaque fois que l'on clique sur le menu, l'application requète le serveur, récupère la liste des salons et les ajoute dans le menu.

Exercice 3 - You've got a message

Nous allons maintenant modifier un peu notre code pour pouvoir demander au serveur un message sur un salon.

Exercice 4 - Facteur, presse le pas, car ... n'attend pas !

Récupérez les messages des autres c'est bien, mais en écrire c'est plus sympa.

Exercice 5 - (BONUS) Introduce yourself

En bonus, vous pouvez faire une application complète de chat en utilisant par exemple une ListView.