Domanda

Sto lavorando su un programma di messaggistica istantanea in C # (per l'apprendimento solo).
Voglio solo sapere se il mio modo è giusto o sbagliato.
Ho creato una classe Client whice contiene un NetworkStream e Lettura funzioni / scrittura.
Il server crea un nuovo thread per ogni cliente, il filo ascoltare per i nuovi messaggi.

Un modo migliore?

È stato utile?

Soluzione

Non è necessariamente bisogno di generare un thread per ogni cliente. Mi piacerebbe indagare il design pattern Observer in quanto affronta il problema di pubblicazione-iscrizione, che è un buon modo per guardare un programma di messaggistica, in particolare se si desidera che più ascoltatori di un oratore. Ecco un buon punto di partenza: http://www.blackwasp.co.uk/Observer.aspx . Questo link discute il pattern Observer e cita la messaggistica istantanea: http://www.oodesign.com/observer -pattern.html.

È possibile che un approccio singolo thread può essere in grado di tenere il passo con un sacco di messaggi. A seconda di come si progetta classi che può essere utile per mettere intere conversazioni nel proprio thread. Si dovrebbe anche pensare di utilizzare le code per gestire i messaggi in entrata e in uscita, con i lettori di coda nella propria discussione pure.

suona come un progetto di divertimento.

Altri suggerimenti

Prova WCF. Qui è un esempio bello.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top