使用Silverlight应用程序设计大型WCF双工服务的最佳方法是什么?

时间:2009-08-01 22:10:58

标签: wcf silverlight web-services architecture duplex

我目前正在开发一个Silverlight应用程序,更确切地说是一个游戏,它有两种状态:Lobby和Game。

我创建了我的服务应用程序以反映该结构。我创建了一个LobbyService来处理所有与大厅相关的操作,并创建了一个GameService来处理所有实际的游戏操作。最重要的是,我有第三个服务'GeneralService'来处理两个状态之间共享的操作(聊天,系统消息等)。

我对设计本身非常满意,但阅读Duplex服务的可扩展性让我相信拥有3项服务可能并不是一个好主意,这可能意味着在同时为每个客户端,从而在服务器端占用更多资源。

所以我的问题是,最好只为一切提供1个WCF服务(.svc)(可能只是通过实现3个不同的数据协定)或者是否可以保持当前设计并将服务逻辑地分成他们的自己的服务?

谢谢!

2 个答案:

答案 0 :(得分:2)

据我所知,WCF Polling Duplex服务在性能上有一些缺点......可以更好地使用这个项目:http://laharsub.codeplex.com/用于您的应用程序。

答案 1 :(得分:0)

如果LobbyService和GameService之间存在安全/权限差异,我会将它们保留为两种不同的服务。

您可以允许这些服务从GeneralService继承,从而在两个服务中都可以使用该功能。

这样可以减少每个客户端打开的双工通道数量,同时保持结构或服务。