是否可以使用node.js创建一个需要抽搐反应的实时游戏.延迟有多高?它实际上有多低?
可以像在任何其他语言/框架中一样在node.js中创建实时游戏.
这里的问题是你将使用什么样的服务器和客户端.
使用http服务器功能进行此类游戏将是一个坏主意并且非常困难,但您可以像使用任何其他语言一样使用TCP服务器(现在称为网络服务器).
客户端将位于可以使用套接字的平台上,例如Flash,Java applet或桌面软件.
请注意,即使使用TCP套接字服务器,您也可能会遇到抽搐游戏的延迟问题,但这超出了与此问题相关的范围,更多地涉及游戏和网络.
PS:您可以使用Web套接字,因为理论上它们应该像TCP套接字一样工作,但在当前的现代浏览器中还没有很好的支持.
编辑:
似乎我没有正确解释自己,你可以制作一个像你说的浏览器可访问的游戏,你只需要使用一个允许你快速实时来回发送数据的协议.
如果你想要一个没有任何第三方插件的"纯粹"浏览器游戏,就像我之前说过的那样,只使用带有websockets的JavaScript,主流浏览器还没有很好地支持它.(你可以使用Flash桥,但仍然可以在JavaScript中使用你的游戏.)
使用第三方插件,你有Flash和Java(除了众多不太知名的插件,如统一等).两者都有TCP套接字(不确定UDP),可以连接到node.js网络服务器(有一些安全限制).大多数人会说你使用Flash,因为有更大的支持,但Apple不喜欢它,因此iPhone/iPad/iPod Touch或其他各种移动设备(不支持Java)没有Flash.
所以是的...祝你好运.
编辑2:
浏览器中的Websocket支持现在相当不错,因此如果您想将浏览器用作客户端,我建议将其用于实时游戏.
HTTP服务器通常针对延迟上的吞吐量/带宽进行优化.node.js不太可能是一个例外,由于协议的结构,HTTP在低延迟方面本质上很差.
使用node.js的一个非正式基准支持这一点,显示数百毫秒的延迟.相比之下,大多数抽搐游戏支持的延迟不超过30或40毫秒,理想情况下更少.
因此,如果您不能丢弃HTTP,我建议删除抽搐方面.