Erlang 在gen_服务器行为中,如何在具有功能节点()的节点之间实现广播新闻?

Erlang 在gen_服务器行为中,如何在具有功能节点()的节点之间实现广播新闻?,erlang,Erlang,我知道如何发送消息,但接收功能让我很烦恼 broadcast(Message) -> Nodes = nodes(), gen_server:cast(aname, {broadcast, Message, Nodes}). handle_cast({broadcast, Message, Nodes}, State) -> lists:map(fun(x) -> {aname, X} ! Message end, Nodes). 我应该如何从其他

我知道如何发送消息,但接收功能让我很烦恼

broadcast(Message) ->
    Nodes  = nodes(),
    gen_server:cast(aname, {broadcast, Message, Nodes}).

handle_cast({broadcast, Message, Nodes}, State) ->
    lists:map(fun(x) -> {aname, X} ! Message end, Nodes).

我应该如何从其他节点接收消息?

如果要强制转换到不同节点上的多个已注册的gen_服务器,请使用gen_服务器:abcast/2或gen_服务器:abcast/3,如果要解决其中一些问题。至于接收,如果您从本地或远程节点收到消息,并且消息中没有任何可用于确定发送者的内容,则没有明显差异。

使用
将消息发送到gen_服务器进程操作员在
处理信息
功能中接收:

handle_info(Message, State) ->
    %% do something with Message here
    {noreply, State}.

这与消息是否从另一个节点发送无关。

gen_server:cast/3或gen_server:multi_call/3

如果我广播这样的消息{message,node(),Content},其他节点可以接收这种格式吗?Emm…接收方是一个循环,而发送方不是,我应该如何处理这一点,以便我可以随时发送或接收。