我们有一个node.js服务器,该服务器将REST API实施为中央服务器的代理,而中央服务器具有一个略有不同且不对称的REST API。
我们的客户端运行在各种浏览器中,它要求节点服务器从中央服务器获取任务。节点服务器从中央服务器获取所有任务ID的列表,并将其返回给客户端。然后,客户端通过代理对每个ID进行两次REST API调用。
据我所知,这些工作都是异步完成的。在控制台日志中,启动客户端时,它看起来像这样:
Requested GET URL under /api/v1/tasks/*: /api/v1/tasks/
从中央服务器获取列表需要花费几秒钟的时间。一旦获得响应,服务器就会很快将其拒绝:
Requested GET URL under /api/v1/tasks/id/:id :/api/v1/tasks/id/438 Requested GET URL under /api/v1/workflow/id/:id :/api/v1/workflow/id/438 Requested GET URL under /api/v1/tasks/id/:id :/api/v1/tasks/id/439 Requested GET URL under /api/v1/workflow/id/:id :/api/v1/workflow/id/439 Requested GET URL under /api/v1/tasks/id/:id :/api/v1/tasks/id/441 Requested GET URL under /api/v1/workflow/id/:id :/api/v1/workflow/id/441
然后,每当一对这样的请求从中央服务器得到结果时,就会非常快速地禁止另外两行。
因此,看来我们的node.js服务器只愿意一次发出六个请求。
我已对其他答案进行了投票,因为它们帮助我诊断了问题。提示是该节点的套接字限制为5,而我一次得到6。Chrome中的限制是6,这就是我用来测试服务器的限制。