我想知道当达到 maxSockets
时会发生什么?
如果我使用的服务允许我创建自定义 http.Agent
并将 maxSockets
指定为 1。当我尝试发出多个并发时会发生什么请求?
每个请求都会超出初始 block 直到初始完成吗?然后套接字将可用于下一个请求?和所有其他人阻止?我当然会这么认为,但无法在文档中找到任何具体内容,而且我是套接字编程的新手。
最佳答案
在使用 maxSockets 后,额外的 requests get queued直到事件请求完成并释放套接字以供使用,此时来自队列的未决请求将发送到新释放的套接字上。
请注意,这在技术上是排队而不是阻塞 - CPU 和事件循环在此过程中继续做有用的工作。
还请注意,在每个来源(“主机:端口”)的基础上(类似于浏览器)有一个 maxSockets 和队列。
关于javascript - node.js 达到 maxSockets 时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33807728/