2009-08-01 2 views
3

Ich arbeite derzeit an einer Silverlight-Anwendung, genauer gesagt einem Spiel, das zwei Zustände hat: Lobby und Spiel.Was ist der beste Weg, große WCF Duplex Services mit einer Silverlight-Anwendung zu entwerfen?

Ich habe meine Dienstanwendung erstellt, um diese Struktur widerzuspiegeln. Ich habe einen LobbyService für alle Lobby-bezogenen Operationen und einen GameService erstellt, der alle aktuellen Spieloperationen abwickelt. Darüber hinaus habe ich einen dritten Dienst 'GeneralService', der Operationen verwaltet, die zwischen beiden Zuständen geteilt werden (Chat, Systemmeldungen, etc ...).

Ich bin ziemlich glücklich mit dem Design selbst, aber lesen auf die Skalierbarkeit der Duplex-Dienste hat mich zu der Annahme, dass es nicht eine gute Idee, 3 Dienste, was bedeutet, dass 2-3 Duplex-Kanäle geöffnet sein kann Die gleiche Zeit für jeden Client, wodurch mehr Ressourcen am Server verbraucht werden.

Also meine Frage ist, ist es besser, nur 1 WCF-Service (.svc) für alles zu haben (vielleicht nur durch die Implementierung von 3 verschiedenen Datenverträgen) oder sollte es in Ordnung sein, das aktuelle Design zu halten und die Dienste logisch aufzuteilen ihre eigene Dienstleistung?

Danke!

Antwort

0

Wenn es Sicherheits/Rechte-Unterschiede zwischen dem LobbyService und dem GameService gibt, würde ich sie als zwei verschiedene Dienste behalten.

Sie könnten diese Dienste möglicherweise von GeneralService inherhit zulassen, wodurch diese Funktionalität in beiden Diensten verfügbar ist.

Dies reduziert die Anzahl der für jeden Client geöffneten Duplexkanäle, während die Struktur oder Ihre Dienste beibehalten werden.

2

Wie ich weiß, WCF Polling Duplex-Dienste haben einige Nachteile in der Leistung ... Vielleicht besser dieses Projekt verwenden: http://laharsub.codeplex.com/ für Ihre Anwendung.

Verwandte Themen