Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 数据流,走哪条路?_Ajax_Node.js_Websocket_Nowjs Sockets - Fatal编程技术网

Ajax 数据流,走哪条路?

Ajax 数据流,走哪条路?,ajax,node.js,websocket,nowjs-sockets,Ajax,Node.js,Websocket,Nowjs Sockets,我即将开始一个HTML5游戏,java脚本中有大量的逻辑,我想在服务器端保留一些逻辑,这样我可以保证我的游戏只在我的服务器上玩 我决定选择node.js,因为它速度非常快,我考虑了两种方法: 要使用AJAX,客户端将调用服务器端方法,该方法将返回计算出的数字以刷新游戏场景,此调用将每2秒调用一次 要使用node.js打开套接字,以便客户端不必每次都调用服务器,相反,它会一直侦听从打开的套接字传输的数据,这将每x秒刷新一次数据 计算出的数据不大,约为每秒0.5 kb,客户端还需要告诉服务器状态,因

我即将开始一个HTML5游戏,java脚本中有大量的逻辑,我想在服务器端保留一些逻辑,这样我可以保证我的游戏只在我的服务器上玩

我决定选择node.js,因为它速度非常快,我考虑了两种方法:

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

  • 要使用node.js打开套接字,以便客户端不必每次都调用服务器,相反,它会一直侦听从打开的套接字传输的数据,这将每x秒刷新一次数据

  • 计算出的数据不大,约为每秒0.5 kb,客户端还需要告诉服务器状态,因此从客户端发送的数据约为每秒0.1 kb,具体取决于游戏

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


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

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


    就性能而言,我也会选择WebSocket,通过做一些测量实验,例如一次平均100个请求的往返时间,WebSocket的往返时间较低。下面是一个性能测试的链接,可能会告诉您结果:

    谢谢,您知道HTML5服务器发送的事件吗?你认为它比WebSocket快吗?