ActionCable订阅创建方法的可用回调列表是什么?

时间:2017-09-21 07:57:48

标签: ruby-on-rails-5 actioncable

我正在尝试设置我的Rails 5 ActionCable以便将更新广播到我的数据库。到目前为止,我已经开始了,但我意识到ActionCable上的文档有点缺乏。对于我的情况,我想知道我允许放入函数subscriptions.create()的回调列表。

例如

const consumer = ActionCable.createConsumer();
consumer.subscriptions.create(
    'ChatsChannel'
    {
        received: someCallback,
        connected: otherCallback,
        disconnected: anotherCallback
    }
 )

我注意到

appendLinecreateLine

第5.4节http://guides.rubyonrails.org/action_cable_overview.html

还有多少人?它们对应的是什么?这与Node.js和Python上通常的websocket有很大的不同。使用socket.io,我只有4个选项,opencloseerrormessage。当Rails被认为是约定优于配置时,为什么ActionCable看起来如此非常规

由于

2 个答案:

答案 0 :(得分:1)

从源代码来看,这些是开箱即用的仅有的三个回调:

connected

received

disconnected

答案 1 :(得分:0)

在本节中,您指向guide

# app/assets/javascripts/cable/subscriptions/chat.coffee
App.cable.subscriptions.create { channel: "ChatChannel", room: "Best Room" },
  received: (data) ->
    @appendLine(data)

  appendLine: (data) ->
    html = @createLine(data)
    $("[data-chat-room='Best Room']").append(html)

  createLine: (data) ->
    """
    <article class="chat-line">
      <span class="speaker">#{data["sent_by"]}</span>
      <span class="body">#{data["body"]}</span>
    </article>
    """

在此代码中,appendLinecreateLine只是在那里定义的回调,分别由@appendLine@createLine指向。这只是CoffeeScript语法,可以更富有表现力地对您的代码进行模块化。

  

还有多少?

老实说,我不确定。我没有找到与the ruby documentation的Action电缆一样广泛的JS文档。但是appendLinecreateLine并未定义回调,它们仅在该示例中出现。

//更新:

完整列表可在here中找到。