2009-06-24 72 views
3

我正在研究WPF中的4人網絡遊戲並在此過程中學習WCF。到目前爲止,爲了處理網絡通信,我遵循YeahTrivia game on Coding4Fun遊戲的建議:我使用dualHttpBinding,並使用接口將消息發送回客戶端。它工作得很好。處理大型WCF服務的最佳做法

但是,我的服務變得非常大。它具有處理遊戲本身的方法/回調,還包括聊天系統,登錄/註冊過程,匹配,名單/玩家信息等等。服務器和客戶端都變得很難維護,因爲所有東西都被捆綁成一個單一界面。例如在客戶端,我必須將回調重定向到遊戲頁面,大廳頁面等,我覺得非常乏味。我寧願能夠處理遊戲頁面上的遊戲回調,聊天窗口上的聊天回調等。

那麼,處理這個問題的最佳方法是什麼?我想過很多事情,但不知道哪個最好:將服務分成多個服務,在我的服務上有多個「端點」,還是有其他技巧在適當的地方部分實施服務?

感謝

回答

4

你應該有多個組件,每個組件都應該被限制在一個責任 - 不一定是一個方法,但處理國家爲你處理的對象之一。當你把所有的一切都集中在一個服務中時,你的服務就會與其自身聯繫起來。理想情況下,每個組件應儘可能獨立。

我想說的是把它分解開來,它有意義,事情應該更容易管理。

+0

我對WCF有點不好意思,我該怎麼做到這一點?我不確定我如何將我的服務分成多個組件。 – 2009-06-24 16:07:29

1

我會支持特里的迴應 - 你應該把你的大界面分成幾個小界面。另外,你可能會將某些操作(如註冊和/或登錄過程)劃分爲更簡單的服務 - 不瞭解你的遊戲的任何內容,我認爲這可能是一種簡單的非雙工服務,例如,提供了有效的「玩家令牌」作爲其輸出,然後其他服務可以使用它來驗證玩家。

多個更小,更精簡的界面還爲您提供了創建單獨的專用前端(例如在Silverlight或其他內容中)的選項,這些前端可以針對/處理整個系統的某些部分。

Marc