我目前处于使用silverlight设计基于浏览器的游戏的早期阶段。这场比赛将有2-4场比赛(甚至可能达到8场)的很多比赛,并且将基于回合制。
前端是Silverlight 3.0,因为我有一些经验。我想弄清楚后端应该是什么。由于游戏是基于回合制的,因此不需要像实时游戏一样经常轮询服务器。服务器端将包括某种中间层,它在客户端和后端之间进行通信。后端将是一个基于c#的Windows服务,它根据用户操作(攻击,防御,移动,技能,练级等等)执行验证和计算。
Silverlight 3.0客户端与服务器上的c#windows服务之间的中间通信层有以下哪些优点和缺点。
目前我对上面的三个选项一无所知,但是我过去创建了ASP.Net Web服务,而在大学里我做了一些我大部分都忘记的套接字编程。
答案 0 :(得分:2)
以下是我对事物的看法:
套接字: 好处是,这可以表现得非常好。缺点是在客户端和服务器上实现它们有点脆弱和复杂。我会避免这种情况,除非没有其他办法(例如你需要非常高的性能)。
WCF / WCF Duplex: 如果您只需要花十分钟思考要来回发送的内容,WCF就非常容易实现。性能良好,部署简单。这将是我在线游戏的首选。
WCF Duplex有点复杂。有一些很好的教程如何让它工作,但我发现有一些陷阱可能不值得努力。如果你不需要高轮询间隔,我会坚持正常的WCF。据我所知,WCF Duplex也进行了轮询,因此它不是真正的双工。
.NET RIA服务: 我不确定这个,但我认为开销不是你拥有大量流量时所需要的。同样来自论坛问题,我了解到这个问题并不容易定制,而WCF更灵活。
结论: 除非有一些令人信服的理由不这样做,否则我会坚持使用WCF。