我想知道到达maxSockets
时会发生什么?
如果我使用允许我创建自定义http.Agent
的服务,并将maxSockets
指定为1.当我尝试发出多个并发请求时会发生什么?
每个请求是否会超出初始块直到初始化完成?然后套接字可用于下一个请求?和其他所有人阻止?我当然会这么认为,但是无法在文档中找到任何内容,而且对于socket编程来说是全新的。
答案 0 :(得分:4)
在使用maxSockets之后,额外的requests get queued直到活动请求完成并且释放了一个套接字以供使用,此时将在新释放的套接字上发送来自队列的挂起请求。 / p>
请注意,这在技术上排队不阻塞 - 在此过程中CPU和事件循环继续执行有用的工作。
另请注意,每个源(" host:port")基础上有一个maxSockets和队列(类似于浏览器)。