SAE302

Développer une application communiquante

Développement d'une application graphique basé sur la communication client-serveur (avec sérialisation json et socket TCP en java)

L’objectif de ce projet est de mettre en place une plateforme de communication pour différents clients L’outil est composé de :


  • Un serveur en java assurant la communication des clients
  • Une application graphique dédiée aux clients en javaFx

Pour développer cette application, j'ai eu une période de 3 mois, partant de zéro pour réaliser ces différentes étapes :


  • Création de l'interface graphique (javaFx)
  • Gestion des contacts, du modèle des messages et des posts
  • Création d'un serveur de chat basique
  • Évènements réseaux (propre protocole de communication)
  • Gestion des salons
  • Gestion des notifications
  • Package de l'application
application graphique
schéma du projet

Les utilisateurs de l'application sont identifiés par un login et peuvent se choisir un avatar. Ils sont authentifiés par le serveur, qui gère un annuaire des logins autorisés à se connecter.
Les utilisateurs peuvent discuter en privé avec un autre utilisateur ou dans des salons de discussion publics regroupant plusieurs utilisateurs. Les salons disponibles seront gérés par le serveur, qui recense également les utilisateurs autorisés à poster dans un salon.

Évènements JSON

Les échanges réseaux s’appuient sur un protocole standardisé utilisant des évènements sous la forme de données JSON.


Exemple : Évènement client→serveur : demande d’authentification avec le login minnie.


{"type":"AUTH","content":{"login":"minnie"}}


Exemple : Évènement client→serveur : envoi d’un message privé à daisy.


{"type":"MESG","content":{"to":"daisy","body":"Hey!"}}

Bilan personnel

Ce projet d'application de messagerie client-serveur a été l'un des plus passionnants que j'ai réalisés, malgré le temps considérable investi et les nombreux bugs rencontrés lors du développement de la réception des messages et du protocole de communication JSON. La création complète d'un système de chat avec gestion des utilisateurs, salons publics, messages privés et authentification m'a permis d'approfondir mes compétences en programmation Java et en architecture réseau. Bien que techniquement exigeant, ce projet m'a procuré une grande satisfaction personnelle en voyant l'application prendre vie et fonctionner, renforçant ma passion pour le développement d'applications.