node.js实时游戏

node.js实时游戏,node.js,Node.js,是否可以使用node.js创建需要twitch反射的实时游戏。延迟有多高?它的实际可用性有多低?在node.js中制作实时游戏是可能的,就像使用任何其他语言/框架一样 这里的问题是您将使用哪种类型的服务器和客户端。 在这样的游戏中使用该功能将是一个坏主意,而且非常困难,但是您可以像在任何其他语言中一样使用(现在称为网络服务器) 客户机将位于某个平台上,您可以在该平台上使用套接字,如Flash、Java小程序或桌面软件 请注意,即使使用TCP套接字服务器,twitch游戏的延迟也可能会出现问题,但

是否可以使用node.js创建需要twitch反射的实时游戏。延迟有多高?它的实际可用性有多低?

在node.js中制作实时游戏是可能的,就像使用任何其他语言/框架一样

这里的问题是您将使用哪种类型的服务器和客户端。
在这样的游戏中使用该功能将是一个坏主意,而且非常困难,但是您可以像在任何其他语言中一样使用(现在称为网络服务器)

客户机将位于某个平台上,您可以在该平台上使用套接字,如Flash、Java小程序或桌面软件

请注意,即使使用TCP套接字服务器,twitch游戏的延迟也可能会出现问题,但这超出了与此问题和更多相关的领域

PS:您可以使用web套接字,因为理论上它们应该像TCP套接字一样工作,但在当前的现代浏览器中还没有对它们的良好支持


编辑

似乎我没有正确地解释我自己,你可以像你说的那样制作一个浏览器可访问的游戏,你只需要使用一个协议,允许你实时快速地来回发送数据

如果你想要一个没有任何第三方插件的“纯”浏览器游戏,唯一的方法,就像我之前所说的,就是在WebSocket中使用JavaScript,这还没有得到主流浏览器的很好支持。(您可以使用Flash bridge,但仍然可以使用JavaScript进行游戏。)

使用第三方插件,你有FlashJava(除了众多不太知名的插件,如unity等)。两者都有TCP套接字(不确定UDP),可以连接到node.js网络服务器(有一些安全限制)。大多数人会说你应该使用Flash,因为有更大的支持,但苹果不喜欢它,所以iPhone/iPad/iPod Touch或其他杂项移动设备(支持Java)上没有Flash

所以是的。。。祝你好运

编辑2:


浏览器中的Websocket支持现在相当不错,因此如果您想将浏览器用作客户端,我建议您将其用于实时游戏。

这是可能的,但这取决于服务器和客户端之间必须传输多少数据以及传输速度(说到延迟)。例如,请看一看


此外,如果您计划使用WebSocket,请查看learnboost提供的library。当WebSocket可用时,它会使用WebSocket,在其他情况下,它会使用comet。

HTTP服务器通常会针对延迟期间的吞吐量/带宽进行优化。node.js不太可能是一个例外,而且由于协议的结构,HTTP本质上是低延迟的

使用node.js支持这一点,显示数百毫秒的延迟。相比之下,大多数twitch游戏支持的延迟不超过30或40毫秒,理想情况下更少


因此,如果您不能删除HTTP,我建议您删除twitch特性。

在游戏中使用TCP不是很明智,UDP是一种方法。我完全不同意。在游戏中使用UDP不是很明智,TCP是一条可行之路。无论哪种方式,UDP在这些平台上的支持都更少。(我不记得Flash是否支持它,但我认为Java苹果支持。)@Lo'oris,Ricket-这真的取决于游戏。如果你正在做一个回合制游戏,TCP可能是一个不错的选择。“但是,如果你制作一个实时游戏,UDP将是一条出路。”布赖恩同意。TCP的实时开销太大了。如果一个(或多个)用户连接延迟,服务器将受到数据包重新发送请求的影响。它不仅会增加服务器上的负载,而且到客户端的传输将被阻塞,等待新数据包到达并重新组装数据(使状态更加不同步)。TCP的延迟弱点是实时数据情况下的延迟倍增。我看不出HTTP和它有什么关系。对于多人游戏中玩家之间的低延迟更新,人们通常使用UDP或TCP,node.js都可以。你说得很对。然而,当我发布这个答案时,很少有人谈论使用node.js做任何事情,除了作为web服务器,UDP支持还有2个月。啊:)node.js的开发速度之快让我感到惊讶。从对一个预先指定使用nodejs的项目进行损害控制的经验来看,(我很高兴得到纠正!),nodejs对性能的大部分要求都是基于低延迟,而不是高吞吐量。Nodejs在性能方面并不是什么新东西(读-相当于协作多任务,有所有的陷阱)。在OP的情况下,延迟是必需的-所以试一试,但是。。。明智地选择。在这种情况下,我可以提交一些要处理的东西,并返回“好的,我得到了,它看起来有效”作为回应,我强烈地感觉到nodejs被过度销售给了未受过教育的人。思想?