私は現在、次のことが起こるスキームを考案しようとしています。
クライアントA
は topic/channel にサブスクライブ/接続されていますT
。
A
select
はクエリの形式でメッセージを に送信しますT
。
A
クエリ結果のみを受信し、他のサブスクライバーは受信しません。
これはチャネルを使用しても可能ですか? Channels を選んだ主な理由は、優れた websocket サポートのためでしたが、他の Phoenix ソリューションも受け入れています。
私は現在、次のことが起こるスキームを考案しようとしています。
クライアントA
は topic/channel にサブスクライブ/接続されていますT
。
A
select
はクエリの形式でメッセージを に送信しますT
。
A
クエリ結果のみを受信し、他のサブスクライバーは受信しません。
これはチャネルを使用しても可能ですか? Channels を選んだ主な理由は、優れた websocket サポートのためでしたが、他の Phoenix ソリューションも受け入れています。
はい、チャネルは必要な作業を行う必要があります。以下を使用して、クエリを送信したユーザーにクエリ結果をプッシュできますpush
。
def handle_in("new_query", %{"query" => query}, socket) do
# do the query and store the result into query_result
#return back the result using push to the user
push socket, "new_query", %{query_result: query_result}
{:ok, socket}
end
トピックに参加しているすべてのユーザーにクエリ結果を返したい場合は、 のbroadcast
代わりに単純に使用できます。こちらpush
のドキュメントを参照してください。