socket.connect(options[, connectListener])


在指定的套接字上发起连接。通常不需要使用此方法,套接字应通过 net.createConnection() 创建并打开。仅在实现自定义套接字时使用此方法。

🌐 Initiate a connection on a given socket. Normally this method is not needed, the socket should be created and opened with net.createConnection(). Use this only when implementing a custom Socket.

对于 TCP 连接,可用的 options 有:

🌐 For TCP connections, available options are:

  • autoSelectFamily <boolean>如果设置为 true,它将启用一个家庭自动检测算法,该算法松散地实现了 RFC 8305 的第 5 节。传递给 lookup 的 all 选项被设置为 true,套接字会按顺序尝试连接所有获得的 IPv6 和 IPv4 地址,直到建立连接。首先尝试返回的第一个 AAAA 地址,然后是返回的第一个 A 地址,然后是第二个返回的 AAAA 地址,依此类推。每次连接尝试(但最后一次除外)在超时并尝试下一个地址之前,都会给予 autoSelectFamilyAttemptTimeout 选项指定的时间。如果 family 选项不是 0 或者设置了 localAddress,则忽略该设置。如果至少有一个连接成功,则不会发出连接错误。如果所有连接尝试都失败,则会发出包含所有失败尝试的单个 AggregateError默认值: net.getDefaultAutoSelectFamily().
  • autoSelectFamilyAttemptTimeout <number>: 使用 autoSelectFamily 选项时,等待连接尝试完成然后再尝试下一个地址的时间(以毫秒为单位)。如果设置为小于 10 的正整数,则将使用值 10默认值: net.getDefaultAutoSelectFamilyAttemptTimeout()
  • family <number>IP 协议栈的版本。必须是 460。值 0 表示允许 IPv4 和 IPv6 地址。默认值: 0
  • hints <number> 可选 dns.lookup() 提示
  • host <string> 主机应连接到的套接字。默认值: 'localhost'
  • keepAlive <boolean> 如果设置为 true,则在连接建立后立即在套接字上启用保持活动功能,这与 socket.setKeepAlive() 中的操作类似。默认值: false
  • keepAliveInitialDelay <number> 如果设置为正数,它会设置在空闲套接字上发送第一个保活探测之前的初始延迟。默认值: 0
  • localAddress <string> 套接字应连接的本地地址。
  • localPort <number> 套接字应连接的本地端口。
  • lookup <Function> 自定义查找函数。默认: dns.lookup()
  • noDelay <boolean> 如果设置为 true,则在套接字建立后立即禁用 Nagle 算法。默认值: false
  • port <number> 必填。套接字应连接的端口。
  • blockList <net.BlockList> blockList 可用于禁止对特定 IP 地址、IP 范围或 IP 子网的出站访问。

对于 IPC 连接,可用的 options 有:

🌐 For IPC connections, available options are: