net_kernel:connect/1 是否已弃用?

Is net_kernel:connect/1 deprecated?

我从 Erlang Programming(O'Reilly,2009)开始学习 Erlang,并且示例中使用 net_kernel:connect/1 函数来展示如何连接到其他节点。

我试图在 the official documentation 中查找此函数,但甚至没有提到 net_kernel:connect/1,而且大多数较新的来源(例如,学习一些 Erlang)仅使用 net_kernel:connect_node/1

到目前为止,我遇到了几个在文档中被明确标记为已弃用的命令,但总是有关于使用什么的建议。保留 connect/1 只是为了向后兼容吗?

我也 traced back 这两个函数,它们都在某一时刻被翻译成 net_kernel:request({connect, normal, Node})

net_kernel:connect/1 函数并未弃用,但对于应用程序,您应该使用 net_kernel:connect_node/1 函数。在 Erlang/OTP 源代码中, net_kernel:connect/1 函数仅由与分布式 Erlang 相关的 Erlang BIF 调用。尽管正如您所观察到的,它和 net_kernel:connect_node/1 最终都会导致对 net_kernel:request/1 的调用,但 net_kernel:connect/1 函数首先执行与分布式 Erlang 相关的检查。