socket.connect(options[, connectListener])
options<Object>connectListener<Function>socket.connect()方法的常用参数。一旦被添加,将作为'connect'事件的监听器。- 返回:<net.Socket> 套接字本身。
在指定的套接字上发起连接。通常不需要使用此方法,套接字应通过 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 协议栈的版本。必须是4、6或0。值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:
path<string> 必填。客户端应连接的路径。参见 识别 IPC 连接的路径。如果提供,上述 TCP 特定选项将被忽略。