1

我有一個節點開始如何連接到已註冊的節點(二郎),並從其他應用程序二郎

ERL -name [email protected] -setcookie somecookie

(使用[email protected])>

但後來我有另一個erlang應用程序,其中我有一個模塊,我想使用我剛纔註冊的節點([email protected] )。 我試圖直接從代碼net_adm:ping([email protected])。我感到很痛苦。我可以看到net_adm:names()。返回元組中所有已註冊和生存的節點{ok [{node,999}],[{n1,9993}],[{theappnode,8383}]}

我需要一種方法來連接到n1,然後使用ping命令來使用RPC另一個遠程節點,像

康恩=連接到節點(N1) 然後執行RPC ... 這些都從另一個二郎應用的模塊代碼.... 以上是可能的嗎?

回答

1

可能是您的其他節點沒有使用相同的cookie啓動。有兩種解決方法:

  1. 與相同的cookie

    erl -name otherapp -setcookie some cookie 
    1> net_adm:ping('[email protected]'). 
    pong 
    
  2. 啓動其他節點啓動其他節點並告訴它什麼是N1節點的餅乾。

    erl -name otherapp 
    1> net_adm:ping('[email protected]'). 
    pang 
    2> erlang:set_cookie('[email protected]', 'somecookie'). 
    true 
    3> net_adm:ping('[email protected]'). 
    pong 
    

在分佈式集羣不能混合短名稱和長名稱(-sname和-name)。

+0

我不認爲你理解我或者我沒有指定更多的東西。我將編輯問題 –

+0

http://stackoverflow.com/questions/18187288/how-to-connect-to-a-registered-node-erlang-and-use-it-from-ejabberd –