agent.createConnection(options[, callback])


  • options <Object> 包含连接详情的选项。请查看 net.createConnection() 以了解选项的格式。对于自定义代理,该对象会传递给自定义的 createConnection 函数。
  • callback <Function>(可选,主要用于自定义代理)一个函数,当套接字被创建时,由自定义 createConnection 实现调用,特别用于异步操作。
  • 返回值:<stream.Duplex> 创建的套接字。 默认实现或自定义同步 createConnection 实现会返回此套接字。如果自定义 createConnection 使用 callback 进行异步操作,则此返回值可能不是获取套接字的主要方式。

生成用于 HTTP 请求的套接字/流。

🌐 Produces a socket/stream to be used for HTTP requests.

默认情况下,此函数的行为与 net.createConnection() 完全相同,会同步返回创建的套接字。签名中的可选 callback 参数在此默认实现中被使用。

🌐 By default, this function behaves identically to net.createConnection(), synchronously returning the created socket. The optional callback parameter in the signature is not used by this default implementation.

然而,自定义代理可以重写此方法以提供更大的灵活性,例如异步创建套接字。重写 createConnection 时:

🌐 However, custom agents may override this method to provide greater flexibility, for example, to create sockets asynchronously. When overriding createConnection:

  1. 同步套接字创建:重写的方法可以直接返回套接字/流。
  2. 异步套接字创建:重写的方法可以接受 callback 并将创建的套接字/流传递给它(例如,callback(null, newSocket))。如果在创建套接字时发生错误,应将其作为第一个参数传递给 callback(例如,callback(err))。

代理将使用提供的 options 和这个内部的 callback 调用提供的 createConnection 函数。代理提供的 callback 的签名是 (err, stream)

🌐 The agent will call the provided createConnection function with options and this internal callback. The callback provided by the agent has a signature of (err, stream).