将消息发送/广播到一组进程的实用方式是什么。
ID
上收集用户,ETS
存储将用于存储用户的进程ID 和会议室ID {Pid, Rid}
如何同步向所有与会议室ID 配对的流程发送消息?
答案 0 :(得分:2)
无法同步。
您可以使用
获取聊天室Rid中的用户Pid列表 ListPid = ets:select(table,[{{'$1','$2'},[{'==','$2',Rid}],['$1']}])
您可以使用列表推导或lists:foreach/2
lists:foreach(fun(X) -> X ! Message end,ListPid)
根据您在ETS中搜索的频率,最好将信息存储为{Rid,Pid}并使用更快的ets:lookup / 2。