Retour aux projets

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.

3 mois
Durée du projet
2
Composants (client + serveur)
Java
Stack principale + JavaFX

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

Capture d'écran de l'application Chat - interface JavaFX avec liste de contacts et fenêtre de messagerie
1

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.

2

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.

// Authentification
{ "type":"AUTH", "content":{ "login":"minnie." }}

// Message privé
{ "type":"MESG", "content":{ "to":"daisy", "body":"Hey!" }}
Schéma d'architecture client-serveur TCP de l'application chat
3

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

  1. Interface graphique - Conception de l'UI JavaFX : fenêtre principale, zones de message, liste de contacts.
  2. Modélisation des données - Gestion des contacts, modélisation des messages et publications.
  3. Serveur de chat basique - Serveur Java acceptant les connexions TCP et distribuant les messages.
  4. Événements réseau - Définition et implémentation du protocole JSON custom (AUTH, MESG, JOIN…).
  5. Salons de discussion - Gestion des rooms : création, accès, autorisations de publication.
  6. Notifications - Diffusion en temps réel des événements à tous les clients connectés.
  7. 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

Langage & UI
Java JavaFX
Réseau & Protocole
TCP Sockets JSON
3 compétences acquises

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