node.js 达到 maxSockets 时会发生什么?

dm0*_*514 4 javascript sockets connection-pooling node.js

我想知道maxSockets到达时会发生什么?

如果我使用的服务允许我创建自定义http.Agent并且我指定maxSockets为 1。当我尝试发出多个并发请求时会发生什么?

每个请求是否会超出初始块,直到初始完成?那么套接字将可用于下一个请求?和所有其他人阻止?我当然会这么认为,但无法在文档中找到任何具体内容,并且我对套接字编程是全新的。

Pet*_*ons 6

在使用 maxSockets 后,其他请求将排队,直到活动请求完成并释放套接字以供使用,此时队列中的待处理请求将在新释放的套接字上发送。

请注意,这在技术上是排队而不是阻塞——CPU 和事件循环在此过程中继续做有用的工作。

另请注意,每个来源(“主机:端口”)都有一个 maxSockets 和队列(类似于浏览器)。

还要注意,默认的 maxSockets 是 Infinity。