2010-02-18 5 views
0

Je travaille sur un programme de messagerie instantanée en C# (pour l'apprentissage uniquement).
Je veux juste savoir si ma voie est bonne ou mauvaise.
J'ai créé une classe Client contenant des fonctions NetworkStream et Read/Write.
Le serveur crée un nouveau thread pour chaque client, le thread écoute les nouveaux messages.C# Messagerie instantanée

Une meilleure façon?

Répondre

1

Vous n'avez pas nécessairement besoin de générer un thread pour chaque client. J'étudierais le modèle de conception Observer car il traite le problème de publication-abonnement, ce qui est un bon moyen de regarder une application de messagerie instantanée, en particulier si vous voulez écouter plusieurs interlocuteurs. Voici un bon point de départ: http://www.blackwasp.co.uk/Observer.aspx. Ce lien traite du modèle Observer et mentionne la messagerie instantanée: http://www.oodesign.com/observer-pattern.html.

Vous pouvez trouver qu'une approche monothread peut être capable de gérer un grand nombre de messages. Selon la façon dont vous concevez vos classes, vous pouvez trouver utile de placer des conversations entières dans leur propre fil. Vous devriez également penser à utiliser les files d'attente pour gérer les messages entrants et sortants, ainsi que les lecteurs de file d'attente dans leur propre thread.

Cela ressemble à un projet amusant.

1

Essayez WCF. Here est un bel échantillon.

Questions connexes