【问题标题】:How to stop streaming from a specific broadcasting in ActionCable?如何从 ActionCable 中的特定广播停止流式传输?
【发布时间】:2016-12-24 08:45:56
【问题描述】:

我正在尝试使用 ActionCable 作为 GraphQL 查询的传输 (graphql-streaming)。 GraphQL 查询是对数据的任意请求,因此我不想每次查询使用一根电缆,而是希望使用一根电缆并通过该电缆多路复用查询。流程可能是这样的:

  • 连接到 ActionCable
  • 订阅 GraphQL 查询
  • 推送查询结果
  • 应用发生变化,推送另一个查询结果
  • 用户更改页面,我们应该取消订阅该查询

我将订阅事件实现为流,所以订阅看起来像这样:

stream_from(event_name) { evaluate_graphql_and_push } 

但是当用户更改页面时,我想保持频道连接但停止从该事件流式传输。

ActionCable 可以做到这一点吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-5 actioncable


    【解决方案1】:

    您可以在订阅(又名频道)对象上调用unsubscribe 方法。

    即,

    channel = App.cable.subscriptions.create "ChannelName"
    
    onPageChange = function() {
        channel.unsubscribe()
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 2012-05-13
    • 2020-06-26
    • 2015-08-03
    相关资源
    最近更新 更多