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

标签 javascript node.js sockets connection-pooling

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

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

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

最佳答案

在使用 maxSockets 后,额外的 requests get queued直到事件请求完成并释放套接字以供使用,此时来自队列的未决请求将发送到新释放的套接字上。

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

还请注意,在每个来源(“主机:端口”)的基础上(类似于浏览器)有一个 maxSockets 和队列。

另请注意 default maxSockets is Infinity .

关于javascript - node.js 达到 maxSockets 时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33807728/

相关文章:

javascript - 使用 jQuery 修改 html 属性会产生意外结果

javascript - 检查键值是否存在,如果不存在则在 javascript 中推送带有值的键

javascript - 忽略 docker 卷中的每个 `node_modules`

javascript - Node js 中的动态异步等待

javascript - JS : Remove object from nested array and return parent array

javascript - 分支图、生命之树、分支学、JS 或 Canvas 中的分类法?

javascript - 嵌套 GET 请求 Nodejs Expressjs

C 客户端服务器与 <socket.h>

c - 在 C 中的服务器和客户端应用程序中通过套接字发送和接收 JSON

java - Socket编程无法在真实的android设备中连接