我目前正在开发一个Silverlight应用程序,更确切地说是一个游戏,它有两种状态:Lobby和Game。
我创建了我的服务应用程序以反映该结构。我创建了一个LobbyService来处理所有与大厅相关的操作,并创建了一个GameService来处理所有实际的游戏操作。最重要的是,我有第三个服务'GeneralService'来处理两个状态之间共享的操作(聊天,系统消息等)。
我对设计本身非常满意,但阅读Duplex服务的可扩展性让我相信拥有3项服务可能并不是一个好主意,这可能意味着在同时为每个客户端,从而在服务器端占用更多资源。
所以我的问题是,最好只为一切提供1个WCF服务(.svc)(可能只是通过实现3个不同的数据协定)或者是否可以保持当前设计并将服务逻辑地分成他们的自己的服务?
谢谢!
答案 0 :(得分:2)
据我所知,WCF Polling Duplex服务在性能上有一些缺点......可以更好地使用这个项目:http://laharsub.codeplex.com/用于您的应用程序。
答案 1 :(得分:0)
如果LobbyService和GameService之间存在安全/权限差异,我会将它们保留为两种不同的服务。
您可以允许这些服务从GeneralService继承,从而在两个服务中都可以使用该功能。
这样可以减少每个客户端打开的双工通道数量,同时保持结构或服务。