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)
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 :
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 :
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.
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!"}}
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.