gen_server 可以接收来自两个不同客户端进程的消息吗?

Can a gen_server receive messages from two different client processes?

因此 1 和 2 由 ServerPid 发送,3 由 ejabberd 发送。这是有效的,但我不确定正确的行为。所以,

我的问题是:

请帮忙。

任何具有 gen_server 的 pid 的进程都可以使用 ! 向 gen_server 发送消息,这将由 gen_server 的函数处理:

handl_info()

任何具有 gen_server 的 pid 的进程都可以调用函数:

call(GenServerPid, Msg) 
cast(GenServerPid, Msg)

将由 gen_server 函数处理:

handle_call() 
handle_cast() 

在elixir中,有一个叫做Agent的模块,它只是一个gen_server,用来存储State,就像一个计数器。多个进程可以更新计数器并检索当前计数。当然,某些进程必须启动 gen_server,然后将 pid 传递给其他想要 update/retrieve 计数的进程。