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 在整个集群中是唯一的。

如果你有一个变量my_pid作为OtpErlangPid对象,你可以像这样发送:

 mbox.send(my_pid, message);

请参阅 Jinterface 用户指南中的发送功能文档和第1.6 章发送和接收消息

于 2014-08-13T13:13:38.797 回答