2

私は現在、次のことが起こるスキームを考案しようとしています。

クライアントAは topic/channel にサブスクライブ/接続されていますT

Aselectはクエリの形式でメッセージを に送信しますT

Aクエリ結果のみを受信し、他のサブスクライバーは受信しません。

これはチャネルを使用しても可能ですか? Channels を選んだ主な理由は、優れた websocket サポートのためでしたが、他の Phoenix ソリューションも受け入れています。

4

1 に答える 1

1

はい、チャネルは必要な作業を行う必要があります。以下を使用して、クエリを送信したユーザーにクエリ結果をプッシュできます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のドキュメントを参照してください。

于 2016-05-22T13:35:08.783 に答える