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

问题描述

| 我已经使用node.js实现了聊天应用程序。该程序打开与客户端的连接,并在EventEmitter发出“ recv”事件时响应新消息。 问题是,当服务器保留大约3或4个流时,响应其他请求将花费很长时间。 chrome开发人员工具将请求状态显示为待处理。它花费了超过5-30秒的时间才能到达服务器(本地主机)。我使用console.log记录node.js收到新请求的时间 我不知道为什么要长时间停顿。 chrome浏览器,node.js或我应该知道的其他任何东西有限制吗?当节点同时容纳太多请求时,节点会延迟吗?我应该如何测量该值?谢谢     

解决方法

        Chrome每个域支持六个同时连接,因此,如果这些连接已在使用中,则必须等待一个关闭。如果您想知道发生了什么,请使用数据包捕获程序来检查实际的网络流量。     ,        浏览器限于适用于同一浏览器上下文的一定数量的并行连接-例如,当您打开多个6个选项卡时,这些连接将排队,并且您将看到它们处于挂起状态。 您可以避免此限制,例如,通过为每个客户端连接使用唯一的轮询子域。这是Facebook解决此限制的方法,但是Firefox存在问题,该解决方法不起作用,即使您使用唯一的子域,当连接达到限制时,您的连接也会排队。 其他解决方案可能是使用HTML5本地存储,在这里您可以利用StorageEvent来将更改也传播到同一浏览器中的其他选项卡。这是完成StackOverflow聊天的方式。这种方法的优点是您只需要与服务器建立一个轮询连接,但是缺点是在较旧的浏览器中缺少对HTML5本地存储的支持,或者在FF版本<4中缺少其他实现。