1

接続するクライアントごとに新しいプロセスを生成するErlangサーバーがあります。次に、この新しいプロセスの Pid がクライアントに渡されます (新しいプロセスへの接続を確立するため)。jinterface クライアントからの接続を確立するには、これで十分でしょうか?

これを使用して、最初にクライアントから接続しています。

final String SERVERNAME = "server";
final String SERVERNODE = "bertil@computer";

mbox.send(サーバー名、サーバーノード、接続クライアント);

これらの名前は、起動時にサーバーに設定されます。

start() ->
    net_kernel:start([bertil, shortnames]),
    register(server, self()).

生成されたプロセスごとに新しい名前を登録する必要がありますか? それはそれほど動的ではありません...どうすればこれを解決できますか? サーバーのメイン プロセスをルーターとして使用して、すべてのトラフィックを送信する必要がありますか?

4

1 に答える 1

0

pid を取得したら、それに直接メッセージを送信できるはずです。Erlang では、pid を取得した場合、ノードを指定する必要はありません。名前はノードごとに一意であるため、登録された名前に送信する場合にのみノードが必要です。pid はクラスター全体で一意です。

OtpErlangPidmy_pidオブジェクトとして変数がある場合は、次のように送信できます。

 mbox.send(my_pid, message);

send 関数のドキュメントと、Jinterface ユーザー ガイドの1.6 メッセージの送受信の章を参照してください。

于 2014-08-13T13:13:38.797 に答える