0

我即将开始一个HTML5游戏,java脚本逻辑很重,我想在服务器端保留一些逻辑,这样我保证我的游戏只能在我的服务器上玩。

我决定选择node.js,因为它非常快,我想到了两种方法:

  1. 要使用 AJAX,客户端将调用服务器端方法,该方法将返回计算出的数字以刷新游戏场景,此调用将每 2 秒调用一次。

  2. 使用 node.js 打开一个套接字,这样客户端就不必每次都调用服务器,而是继续侦听从打开的套接字流来的数据,这将每 x 秒刷新一次数据。

计算出来的数据不大,大约每秒0.5kb,客户端也需要告诉服务器是什么状态,所以客户端发送的数据大约是0.1kb/x秒,看游戏情况。

似乎第二种方法更好,但是,我需要数百个端口来处理并发播放器..

那么,在性能和最小化使用带宽方面,选择哪种方式呢?或者,还有更好的方法吗?任何人都可以帮忙吗?

4

1 回答 1

0

正如您所提到的,您正在创建一个基于 Web 的 JavaScript 应用程序,该应用程序定期向服务器发送信息或从服务器检索更新,那么我认为您应该使用 WebSocket(尤其是您正在使用 HTML5 开发),这会减少您的应用程序的带宽量用途。

在性能方面,我也会选择 WebSocket,通过做一些测量实验,例如一次平均 100 个请求的往返时间,WebSocket 的往返时间更短。这是一个性能测试的链接可能会告诉结果:http ://www.peterbe.com/plog/are-websockets-faster-than-ajax

于 2013-02-28T20:45:12.423 回答