我想知道到达maxSockets
后会怎样?
如果我使用的服务允许我创建自定义http.Agent
,并且将maxSockets
指定为1,那么当我尝试发出多个并发请求时会发生什么?
每个请求都将超出初始块,直到初始完成?然后套接字将可用于下一个请求?和其他所有阻止?我当然会这么认为,但无法在文档中找到任何东西,并且对套接字编程是全新的。
最佳答案
使用maxSockets后,将附加requests get queued直到 Activity 请求完成并且释放了一个套接字以供使用,这时来自队列的挂起请求将在新释放的套接字上发送。
请注意,从技术上讲,这并不是在排队-在此过程中,CPU和事件循环继续做有用的工作。
请注意,还有一个基于每个来源的“maxSockets”和队列(“host:port”)(类似于浏览器)。
另请注意default maxSockets is Infinity。