如何连接到已注册的节点(Erlang)并从另一个 erlang 应用程序中使用它
Posted
技术标签:
【中文标题】如何连接到已注册的节点(Erlang)并从另一个 erlang 应用程序中使用它【英文标题】:How to connect to a registered Node (Erlang) and use it from another erlang application 【发布时间】:2013-08-13 09:57:14 【问题描述】:我启动了一个节点
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 的方法,然后使用 to 用 rpc ping 另一个远程节点,类似于
conn = 连接到节点 (n1) 然后做rpc ... 这些都来自另一个erlang应用程序的模块代码...... 以上可以吗?
【问题讨论】:
【参考方案1】:可能您的其他节点不是使用相同的 cookie 启动的。您有两种解决方案:
用相同的cookie启动另一个节点
erl -name otherapp -setcookie some cookie
1> net_adm:ping('n1@198.X.X.X').
pong
启动另一个节点,告诉它n1节点的cookie是什么。
erl -name otherapp
1> net_adm:ping('n1@198.X.X.X').
pang
2> erlang:set_cookie('n1@198.X.X.X', 'somecookie').
true
3> net_adm:ping('n1@198.X.X.X').
pong
您不能在分布式集群中混合使用短名称和长名称(-sname 和 -name)。
【讨论】:
我不认为你理解我,或者我没有指定更多的东西。我将编辑问题 ***.com/questions/18187288/…以上是关于如何连接到已注册的节点(Erlang)并从另一个 erlang 应用程序中使用它的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Cowboy (Erlang) websocket 连接到 webflow.io 生成的网页
Erlang EPMD 使用非默认 EPMD 端口连接到其他主机