节点需要很长时间来响应JSON请求

我已经使用node.js实现了聊天应用程序 程序打开与客户端的连接,并在EventEmitter发出“recv”事件时响应新消息。

问题是,当服务器持有大约3或4个stream时,响应其他请求需要很长时间。 Chrome开发者工具将请求的状态显示为待处理状态。 它需要超过5-30秒到达服务器(本地主机)。 我使用console.log来loggingnode.js收到新请求的时间

我不知道为什么有一个很长的停顿。 铬浏览器,node.js或任何其他的东西我应该知道有限制吗? 当节点同时持有太多的请求时,节点是否延迟,我应该如何测量这个值? 谢谢

Chrome支持每个网域六个同时连线,所以如果这些连线已经在使用中,则必须等待一个closures。 如果你想知道发生了什么,使用数据包捕获程序来检查实际的networkingstream量。

浏览器仅限于一定数量的并行连接 ,这些连接适用于相同的浏览器上下文 – 例如,当您打开了多于6个选项卡时,连接将排队,您将看到它们处于等待状态。

您可以避免这种限制,例如,为每个客户机连接使用唯一的轮询子域。 这是如何解决这个限制的问题,但是问题是Firefox,这种解决方法不起作用,即使你使用唯一的子域名时,你的连接也会排队。

其他解决scheme可能是使用HTML5本地存储,您可以利用StorageEvent将更改传播到同一浏览器中的其他选项卡。 这是如何StackOverflow聊天完成。 这种方法的好处是你只需要一个与服务器的轮询连接,但缺点是在旧版浏览器中缺less对HTML5本地存储的支持,或者FF版本<4中的不同实现。