3

我目前正处于使用 silverlight 设计基于浏览器的游戏的早期阶段。游戏将有许多 2-4 名玩家(甚至可能多达 8 人)的比赛,并且将基于回合制。

前端是 Silverlight 3.0,因为我在那里有一些经验。我试图弄清楚后端应该是什么。由于游戏是回合制的,因此不需要像实时游戏那样频繁地轮询服务器。服务器端将包括某种在客户端和后端之间进行通信的中间层。后端将是基于 ac# 的 Windows 服务,它根据用户操作(攻击、防御、移动、技能、练级等)执行验证和计算。

Silverlight 3.0 客户端和服务器上的 c# windows 服务之间的中间通信层的优缺点是什么。

  1. 插座
  2. WCF/WCF 双工服务
  3. .Net RIA 服务

目前我对上述三个选项一无所知,但是我过去创建过 ASP.Net Web 服务,在大学里我做过一些我几乎忘记的套接字编程。

4

1 回答 1

2

以下是我对事物的看法:

Sockets:好处是这可以执行得非常好。缺点是在客户端和服务器上都实现起来有些脆弱和复杂。我会避免这种情况,除非没有其他方法(例如,您需要非常高的性能)。

WCF / WCF Duplex:如果您只需花十分钟时间考虑一下您要来回发送的内容,WCF 就很容易实现。性能很好,部署很容易。这将是我在线游戏的首选。

WCF Duplex 稍微复杂一些。有一些关于如何让它工作的很好的教程,但我发现有一些陷阱可能不值得付出努力。如果您不需要高轮询间隔,我会坚持使用普通的 WCF。据我所知,WCF Duplex 也会进行轮询,因此它并不是真正的双工。

.NET RIA 服务:我不确定这一点,但我认为开销不是您在拥有大量流量时所需要的。同样从论坛问题中,我了解到这个不是那么容易定制,而 WCF 更灵活。

结论:除非有一些令人信服的理由不这样做,否则我会坚持使用 WCF。

于 2009-09-22T06:53:02.960 回答