2016-08-17 16 views
3

私は、GraphCクエリ(graphql-streaming)のトランスポートとしてActionCableを使用しようとしています。 GraphQLクエリはデータの任意の要求なので、クエリごとに1本のケーブルを使用するのではなく、そのケーブルで1つのケーブルと多重化クエリを使用したいと考えています。ActionCableで特定の放送からのストリーミングを停止するにはどうすればよいですか?

  • ActionCable
  • に接続
  • GraphQLクエリに購読
  • プッシュクエリ結果
  • 何かが別のクエリの結果をプッシュする
  • ユーザーがページを変更し、アプリに変更します。流れは次のようであるかもしれませんそのクエリの登録を解除する必要があります。

サブスクリプションイベントをストリームとして実装していますので、サブスクリプションは次のようになります。

stream_from(event_name) { evaluate_graphql_and_push } 

しかし、ユーザーがページを変更すると、チャンネルを接続したままにして、そのイベントからのストリーミングを停止したいと考えています。

これはActionCableで可能ですか?

答えて

0

サブスクリプション(a.k.a.チャネル)オブジェクトでunsubscribeメソッドを呼び出すことができます。

すなわち、

channel = App.cable.subscriptions.create "ChannelName" 

onPageChange = function() { 
    channel.unsubscribe() 
} 
+1

私はそれは私が欲しいものだ_think_ません:私は、チャネルへの接続を維持したいのですが、そのチャネルを介して特定のトリガーからイベントの受信を停止します。私は誤解したことがありますか? – rmosolgo

+0

@rmosolgoこの場合、イベントをストリーミングし、サーバーでストリームを停止し、クライアントで 'perform'コールを使用してこれらのメソッドを呼び出す2つのメソッドを実装する必要があります。 – kevinhyunilkim

+0

https://github.com/rails/actioncable-examplesは好きな例です。 – kevinhyunilkim

関連する問題