3

我正在开发 WPF 中的 4 人网络游戏,并在此过程中学习 WCF。到目前为止,为了处理网络通信,我遵循了关于 Coding4Fun 游戏的 YeahTrivia 游戏的建议:我使用 a dualHttpBinding,并使用CallbackContract接口将消息发送回客户端。它工作得很好。

但是,我的服务变得非常大。它有方法/回调来处理游戏本身,还有聊天系统、登录/注册过程、匹配、花名册/玩家信息等。服务器和客户端都变得难以维护,因为一切都绑定到一个单一界面。例如,在客户端上,我必须将回调重定向到游戏页面、大厅页面等,我觉得这非常乏味。我希望能够处理游戏页面上的游戏回调、聊天窗口上的聊天回调等。

那么最好的处理方法是什么?我想了很多事情,但不确定哪个最好:将服务拆分为多个,在我的服务上有多个“端点”,或者是否有其他技巧可以在适当的情况下部分实现服务?

谢谢

4

2 回答 2

4

你应该有多个组件,每个组件都应该被限制在一个职责上——不一定是一种方法,而是处理你正在处理的对象之一的状态。当您将所有内容都集中在一项服务中时,您的服务将与自身完美耦合。最佳情况下,每个组件应尽可能独立。

我想说从在有意义的地方拆分它开始,事情应该更易于管理。

于 2009-06-24T15:38:57.253 回答
1

我会支持特里的回应——你绝对应该把你的大界面分成几个小界面。

此外,您可以将某些操作(例如注册和/或登录过程)隔离到更简单的服务中 - 对您的游戏一无所知,我认为这很可能是一个简单的非双工服务,例如提供有效的“玩家令牌”作为其然后其他服务可以使用输出来验证玩家的身份。

多个更小、更精简的界面还使您可以选择创建单独的、专用的前端(例如在 Silverlight 中或其他东西中),这些前端将仅针对/处理整个系统的某些部分。

马克

于 2009-06-24T16:04:15.347 回答