面向Web服务的游戏设计1:选择适合的Silverlight通信技术- 让编程成为 ...

1 Socket

对于专业的Silverlight网络游戏来说,毫无疑问Socket是{sx}了。然而对于业余游戏开发者来说,Socket的缺点也是致命的。首先,如果使用Socket,必须在服务器端运行TCP Server程序,只有租用独立主机的环境才可能部署,对于大多数共享的web空间是不允许的。而租用独立主机的价格是共享的web空间的几十倍,不是普通人可以承受的。对于广大的业余游戏开发爱好者,例如笔者,使用Socket的成本太高,不得不放弃。有的朋友可能会说,我们可以在自己的机器上部署,然后通过宽带共享出来。虽然这也是一个选择,但是家庭用宽带的质量实在不能恭维,无论是反应速度,传输速度还是可靠性都比专业的web租用环境差许多。笔者以前曾经用自家的2M的cable宽带(比ADSL质量好)做过试验,从外面连接家里的web服务器,打开一个简单的网页都很慢,支持游戏就更不用想了。

2 Web Service

3 REST

4 WCF

WCF Duplex services支持服务器与客户端的双向通信,即不仅是客户端发起服务请求,服务器也可以主动发送消息。对于某些类服务,例如证券交易信息,外汇牌价信息,天气预报等服务,是很适合的。然而WCF Duplex services在服务器端的开销是很大的,因为其实现机制是对于每个客户服务,每次通信完毕后并不关闭连接,所以服务器可以通过该连接主动发送下一个消息。显而易见,如果很多用户连接该服务,服务器承受的压力是很大的。因此WCF Duplex services比较适合在Intranet环境,{zd0}连结数控制在几十个。对于Silverlight游戏开发就不太适合了。
从Silverlight 4开始支持WCF net.tcp binding。其性能堪比Socket,同时享有WCF编程的便利,真是好东东啊。不过很遗憾,与Socket一样,我们业余fans无法享用该技术。首先,需要IIS设置上使能net.tcp协议。笔者的web hosting服务商回答:在shared web host上不支持该协议,如果需要该协议,建议租用独立主机。lots of $$$...其次WCF net.tcp binding与Socket一样有TCP端口的限制。可想而知,结论和Socket也一样,不是业余fans的选择。

5 WCF RIA Services

{zh1}让我们来看一下Silverlight的新宠,Silverlight 4的明星:WCF RIA Services。尽管它是基于WCF的,但是我们根本不用意识到这一点。通过Visual Studio给我们提供的巨大便利,我们几乎可以通过傻瓜的方式来从客户端(Silverlight) 来直接操作服务器端的数据库,所有的中间过程(类的生成,建立连接等)都由Visual Studio代劳了。对于Silverlight商用软件来说,WCF RIA Services简直方便极了,就像linq一样,一旦用起来,就再也舍不得放下。还有一个原因,WCF RIA Services是为Silverlight量身定做的产品,实为Silverlight通信技术的{sx}啊。不过等等,对于Silverlight游戏开发,WCF RIA Services同样那么美好吗?经过反复思量,笔者得出相反结论。原因如下:

郑重声明:资讯 【面向Web服务的游戏设计1:选择适合的Silverlight通信技术- 让编程成为 ...】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——