Application Chat TCP/JSON
Projet universitaire BUT2 · IUT1 Grenoble - Application graphique Java/JavaFX de messagerie multi-utilisateurs basée sur une architecture client-serveur TCP avec un protocole de communication JSON custom.
Mes objectifs
Développer une plateforme de communication permettant à plusieurs clients de dialoguer via un serveur Java central, avec une interface graphique JavaFX, un système d'authentification et un protocole réseau custom sur TCP.
Ce que j'ai fait concrètement
Interface graphique JavaFX
Conception de l'interface graphique en JavaFX : gestion des contacts, système d'avatars personnalisables et identification par login. L'interface permet de rejoindre des salons de discussion publics, d'initier des conversations privées et de recevoir des notifications en temps réel.
Protocole JSON sur TCP
Définition d'un protocole événementiel custom : chaque action est sérialisée en JSON et transmise via socket TCP. Le type d'événement détermine le traitement côté serveur.
{ "type":"AUTH", "content":{ "login":"minnie." }}
// Message privé
{ "type":"MESG", "content":{ "to":"daisy", "body":"Hey!" }}
Gestion serveur et fonctionnalités avancées
Le serveur Java gère un annuaire des logins autorisés avec authentification centralisée. Il orchestre la disponibilité des salons de discussion publics et les autorisations de publication, distribue les notifications en temps réel à tous les clients connectés et achemine les messages privés entre utilisateurs.
Les 7 étapes de développement
- Interface graphique - Conception de l'UI JavaFX : fenêtre principale, zones de message, liste de contacts.
- Modélisation des données - Gestion des contacts, modélisation des messages et publications.
- Serveur de chat basique - Serveur Java acceptant les connexions TCP et distribuant les messages.
- Événements réseau - Définition et implémentation du protocole JSON custom (AUTH, MESG, JOIN…).
- Salons de discussion - Gestion des rooms : création, accès, autorisations de publication.
- Notifications - Diffusion en temps réel des événements à tous les clients connectés.
- Packaging - Empaquetage de l'application pour une distribution autonome.
Le résultat
Une application de messagerie fonctionnelle permettant à plusieurs utilisateurs de communiquer simultanément via un serveur central. Le projet couvre l'intégralité du cycle de développement : conception de l'interface, modélisation des échanges réseau, implémentation du protocole et packaging de l'application.
Stack technique
Programmation réseau
Sockets TCP, gestion de connexions simultanées, transmission de données fiable.
Java & JavaFX
Interface graphique, modélisation objet, architecture client-serveur full-Java.
Conception de protocole
Définition d'événements JSON typés, sérialisation/désérialisation, gestion des cas d'erreur.
Mikaël Bazzaro · Application Chat TCP/JSON · Projet BUT2 · IUT1 Grenoble · 2024