Frage

Ich arbeite an einem Instant Messaging -Programm in C#(nur zum Lernen).
Ich möchte nur wissen, ob mein Weg richtig oder falsch ist.
Ich habe ein Client -Klasse erstellt, das ein Netzwerkstream enthält und Funktionen gelesen/schreiben.
Der Server erstellt einen neuen Thread für jeden Client, der Thread für neue Nachrichten anhören.

Irgendein besserer Weg?

War es hilfreich?

Lösung

Sie müssen nicht unbedingt einen Thread für jeden Kunden hervorbringen. Ich würde das Beobachter-Design-Muster untersuchen, da es das Problem mit dem Veröffentlichungsunterschriften behandelt. Dies ist eine gute Möglichkeit, eine Instant-Messaging-Anwendung zu betrachten, insbesondere wenn Sie mehrere Zuhörer für einen Sprecher möchten. Hier ist ein guter Ausgangspunkt: http://www.blackwasp.co.uk/observer.aspx. In diesem Link werden das Beobachtermuster erörtert und erwähnt Sofortnachrichten: http://www.oodessign.com/observer-pattern.html.

Möglicherweise stellen Sie fest, dass ein Single-Thread-Ansatz möglicherweise mit vielen Nachrichten Schritt halten kann. Abhängig davon, wie Sie Ihre Klassen entwerfen, können Sie es nützlich finden, ganze Gespräche in ihren eigenen Thread zu stecken. Sie sollten auch über die Verwendung von Warteschlangen nachdenken, um eingehende und ausgehende Nachrichten zu verarbeiten, wobei Warteschlangen auch in ihrem eigenen Thread in ihrem eigenen Thread sind.

Klingt nach einem lustigen Projekt.

Andere Tipps

Versuchen Sie es mit WCF. Hier ist eine schöne Probe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top