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…接收方是一个循环,而发送方不是,我应该如何处理这一点,以便我可以随时发送或接收。