2016-07-26 4 views
1

は、プロセスグループにメッセージを送信/ブロードキャストする方法を教えてください。Erlangのプロセスグループにメッセージを送信する方法

説明:

  • ユーザーがETSストレージがストアユーザーのプロセスID{Pid, Rid}
  • 質問

    がどのようルームのIDに使用される、チャットルームID時に収集されますとペアになったすべてのプロセスにメッセージを送信します。ルームID synchrono私たち?

    答えて

    2

    同期できません。

    あなたは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を使うことは良い考えです。

    関連する問題