我有一个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()).
我是否必须为每个衍生过程注册一个新名称?那不会那么动态......我该如何解决这个问题?我应该将服务器上的主进程用作路由器来发送所有流量吗?
答案 0 :(得分:0)
一旦你有了pid,你应该能够直接向它发送消息。在Erlang中,如果你有一个pid,你不必指定一个节点。如果要发送到已注册的名称,则只需要一个节点,因为每个节点的名称只是唯一的。 Pids在整个集群中是独一无二的。
如果你有一个my_pid
作为OtpErlangPid对象,你可以像这样发送:
mbox.send(my_pid, message);
请参阅Jinterface用户指南中send function和1.6 Sending and Receiving Messages章节的文档。