erlang进程间多播

标签 erlang multicast ets

我正在尝试在erlang中开发一个聊天服务器,并且我想在一组进程之间广播消息,我提出了三种替代方案

  1. 将每条消息发送到主进程,主进程将消息发送到 小组的其他成员,对我来说似乎是一个瓶颈!。
  2. 使用包含该组所有 pid 的全局 ets 表 (过度复制)。
  3. 使用 upd 多播。
  4. pg 模块与 1 相同。

最好的方法是什么,还有其他选择吗?

最佳答案

更自然的方法是让每个进程了解与其通信的每个其他进程的 pid()。将 [pid()] 保持在进程状态,并通过使用 link/1 使其保持当前状态,以便在进程终止时接收到 {'EXIT', Pid, Reason}。

关于erlang进程间多播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12925922/

相关文章:

erlang - 有什么方法可以浏览 erlang 术语存储 (ETS)

amazon-web-services - 如何保护私有(private)子网后面的 Erlang 集群

Erlang:优先接收

erlang - Elixir 有没有办法动态生成原子?

javascript - HTML5 + JS 足以进行局域网通信吗?

c - 如何以编程方式获取用于加入多播组的接口(interface)?

sockets - 接收缓冲区的限制

linux - 可以发送但不能接收组播数据包

erlang - 如何查找erlang ets表字段信息?

erlang - 限制 ETS 存储的增长