http.Agent是在nodejs web服务器中使用的,它只提供请求吗?

时间:2017-01-01 21:27:13

标签: node.js sockets http

创建一个新的http.Agent似乎对Web服务器很有用,因为我可以控制分配多少个套接字,是否保留未使用的套接字(keepAlive标志)等等...... / p>

话虽如此,我认为没有办法将自定义代理传递给新服务器的创建。我需要编辑http.globalAgent吗?

在v7.3.0 nodejs文档中,它说:

  

http.request ()...

使用的默认http.globalAgent

这也让我想知道在发布http.request时这是如何工作的。就像在,它正在调用的服务器(任何服务器)是否会识别它应该只分配x个套接字,为什么客户端应该首先确定这样的东西呢?

1 个答案:

答案 0 :(得分:0)

您需要read the documentation

  

<强> http.request(options[, callback])

     
      
  • options [对象]

         

    •••

         
        
    • agent [http.Agent] | [Boolean]控制代理行为。可能的值:      
          
      • undefined(默认值):对此主机和端口使用http.globalAgent
      •   
      • 代理对象:明确使用传入的代理。
      •   
      • false:导致使用具有默认值的新代理。
      •   
    •   
    • createConnection [功能]在未使用代理选项时生成用于请求的套接字/流的函数。这可用于避免创建自定义代理类以覆盖默认的createConnection函数。有关详细信息,请参阅agent.createConnection()
    •   
    • timeout [Integer]:指定套接字超时的数字,以毫秒为单位。这将在连接套接字之前设置超时。
    •   
  •   
  • callback [功能]
  •   
     

返回:

就您的其他问题而言:将套接字视为连接两台计算机的 a 管道。如果您只打开一个套接字,则一次只能发出一个请求;如果您打开 n 套接字,则可以并行 n 请求