Networking 如何连接到已注册节点(Erlang)并从Ejabberd使用它

Networking 如何连接到已注册节点(Erlang)并从Ejabberd使用它,networking,network-programming,erlang,ejabberd,otp,Networking,Network Programming,Erlang,Ejabberd,Otp,我有一个运行节点的服务器应用程序,正在等待rpc调用 (n2@198.XXX.X.XX)> 我在另一台机器上启动了一个节点,ejabberd也在其中运行 erl-名称n2@198.XXX.X.XX-设置cookie somecookie (n1@198.XXX.X.XX)> 然后我用ejabberdctl live启动了ejabberd服务器,我希望能够从n1 ping n2 (n1@198.XXX.X.XX)> 我可以看到n1是用net_adm:names()注册和运行的 我试着直接从代码网中

我有一个运行节点的服务器应用程序,正在等待rpc调用

(n2@198.XXX.X.XX)>

我在另一台机器上启动了一个节点,ejabberd也在其中运行

erl-名称n2@198.XXX.X.XX-设置cookie somecookie

(n1@198.XXX.X.XX)>

然后我用ejabberdctl live启动了ejabberd服务器,我希望能够从n1 ping n2 (n1@198.XXX.X.XX)>

我可以看到n1是用net_adm:names()注册和运行的

我试着直接从代码网中执行(n2@198.XXX.X.XX). 但是它说系统没有使用合格的主机名运行

我需要一种连接/使用n1并与n2通信的方法
如何切换到n1并以编程方式将rpc转换为n2?

看看您的ejabberdctl和grep中的“name”或“sname”。它表示节点是以短名称启动还是完全限定。它必须与您的“erl名称”匹配。确定命名节点的一种方法并更改节点或ejabberd脚本

你为什么不喜欢它?EPMD需要一些一致性来映射节点。当然,可能还有另一层可以将一层转换为另一层,但为什么要增加复杂性呢?我宁愿取消一种方法,但每种方法都有一些不错的好处。