繁体   English   中英

如何连接到已注册的节点(Erlang)并从另一个erlang应用程序使用它

[英]How to connect to a registered Node (Erlang) and use it from another erlang application

我有一个节点开始于

erl -name n1@198.XXX.X.XX -setcookie somecookie

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

但是然后我有了另一个erlang应用程序,其中有一个模块,我要在其中使用我刚刚注册的节点(n1@198.XXX.X.XX)。 我试图直接从代码net_adm:ping(n1@198.XXX.X.XX)做。 我感到很困惑 我可以看到net_adm:names()。 返回元组中所有已注册和活动的节点。{ok [{node,999}],[{n1,9993}],[{theappnode,8383}]}

我需要一种连接到n1的方法,然后使用rpc对另一个远程节点执行ping操作,例如

conn =连接到节点(n1),然后进行rpc ...所有这些都来自另一个erlang应用程序的模块代码。...以上可能吗?

可能您的其他节点不是以相同的cookie开头的。 您有两种解决方案:

  1. 使用相同的cookie启动另一个节点

     erl -name otherapp -setcookie some cookie 1> net_adm:ping('n1@198.XXX'). pong 
  2. 启动另一个节点,并告诉它n1节点的cookie是什么。

     erl -name otherapp 1> net_adm:ping('n1@198.XXX'). pang 2> erlang:set_cookie('n1@198.XXX', 'somecookie'). true 3> net_adm:ping('n1@198.XXX'). pong 

您不能在分布式集群中混合短名称和长名称(-sname和-name)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM