Nodejs HTTP Agent
Node.js 中的 http.Agent 用于池化 HTTP 客户端请求的 socket (pooling sockets used in HTTP client requests). 也就是复用 HTTP 请求时候的 socket. 如果你没有指定 Agent 的话, 默认用的是 http.globalAgent.
只要用了agent,
- 当socket空闲下来,只要有未分配的请求,都会进行复用,不管设置没设置keepalive。
- 如果当前没有未分配的请求
- 如果设置了keepalive,会根据maxSockets和freeSockets参数判断是否把这个socket暂存到freeSockets队列等待以后使用,并开启操作系统的TCP的keepalive功能。
- 如果没设置keepalive,这个空闲的socket直接干掉