FUB Messenger, un système de chat graphique multithread

Par Alexandre Gaudreault, Anthony Caron, David Lacasse, Guillaume Brulotte, Pierre-Olivier Veilleux et Pierre Simon Arsenault

Le projet consiste à mettre en œuvre un système de clavardage (chat) inspiré de systèmes comme Facebook, MSN Messenger, Skype, etc. Ce système permet à plusieurs clients d’échanger des messages textuels et de mettre à jour leurs profils. Le système est constitué de deux composantes : un serveur central et un client. Le serveur est accessible à une adresse fixe, connue des clients. Il a pour rôle de recevoir et transmettre les messages des clients, créer les salles de discussion auxquelles des clients peuvent se rattacher, et de maintenir en outre une copie du profil des clients. L’archive de la discussion sera conservé sur le serveur. Les clients doivent se synchroniser avec le serveur. Le système à implémenter est donc un système de client-serveur.

Le système à implémenter comprend les services suivants :

  • § un système d’abonnement/désabonnement à une salle de discussion,
  • § un système pour gérer et valider le profil du client,
  • § un système de messagerie instantanée (chat),
  • § un système de statistiques (Like/Dislike) des messages,
  • § un système permettant la consultation du profil des autres utilisateurs.

Des interfaces graphiques seront utilisées pour mettre en œuvre le système. Ces interfaces seront faites en WPF/C# et respecteront le modèle MVVM. Le serveur sera programmé en C#.

Afin d’améliorer le système, le serveur répondra aux demandes en créant plusieurs fils d’exécution. De plus, le serveur comporte deux fils d’exécution distincts. Un servant à faire une sauvegarde ponctuelle de l’état des données et l’autre servant à mettre à jour les clients. Ces threads demanderont des éléments de synchronisation.

La communication sera faite à l’aide des sockets et le protocole TCP sera utilisé.