我有一个 Erlang 服务器,它为每个连接的客户端生成一个新进程。然后这个新进程的 Pid 被传递给客户端(以建立到新进程的连接)。这足以从 jinterface 客户端建立连接吗?
我首先使用它从客户端连接:
final String SERVERNAME = "server";
final String SERVERNODE = "bertil@computer";
mbox.send(SERVERNAME, SERVERNODE, connectClient);
这些名称是在服务器启动时设置的:
start() ->
net_kernel:start([bertil, shortnames]),
register(server, self()).
我是否必须为每个生成的进程注册一个新名称?那不会那么动态...我该如何解决这个问题?我应该使用服务器上的主进程作为路由器来发送所有流量吗?
最佳答案
一旦你有了 pid,你应该能够直接向它发送消息。在 Erlang 中,如果你有 pid,则不必指定节点。如果您要发送到注册名称,则只需要一个节点,因为每个节点的名称都是唯一的。 pid在整个集群中是唯一的。
如果您有一个变量 my_pid
作为 OtpErlangPid您可以像这样发送对象:
mbox.send(my_pid, message);
请参阅 send function 的文档和章1.6 Sending and Receiving Messages在 Jinterface 用户指南中。
关于java - 如何与一个 Erlang 节点中的特定进程进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23192937/