私はリアルタイムイベントを処理するためにエリクシールチャンネルを使ってアプリケーションを書いています。クライアントあたり1つのソケットが開かれ、複数のチャネルを多重化することができると私は理解しています。だから私のアプリは、ユーザーが複数のグループチャットの一部であるチャットアプリケーションです。私はMessageChannelという1つのPhoenix Channelを持っています。そこでは、joinメソッドがダイナミックトピックを扱います。フェニックスチャンネル - ソケットごとに複数のチャンネル
def join("groups:" <> group_id, payload, socket) do
....
あまりにも正しいのは!/ 3もボブにそのメッセージを送信する放送、ジョンはグループ/トピックAにメッセージを送信すると、ボブが唯一のグループ/トピックB.に参加しながら、ジョンはグループ/トピックAとBに参加しましょう? handle_inにはメッセージが送信されたトピック/グループのコンテキストがありません。
グループAに送信されたイベントをBobが受信しないようにするにはどうすればよいでしょうか?
など、私はまた、クライアントの状態、エラーメッセージなどの特定のユーザーに関連するすべてのイベントのためにuser_channelを使用
しかし、私から1つのソケットが複数のトピックを処理することを理解している。リクエストがhandle_inに来ると、どのトピックがメッセージを受信して送信しているのか分からない。ブロードキャストはソケットレベルで発生します。 – ed1t
私はこのコメントで答えようとしていましたが、大きすぎました。ソケットレベルで 'broadcast/3'が発生するのは間に合わないが、ソケットは@Jason Harrelsonと同じように現在の話題を知っている。 (私は楽しいチャンネルの内部に潜んでいたが、それは必要ではない。) – ibgib