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

What is the list of available callbacks for ActionCable subscription create method?

我正在尝试设置我的 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。为什么 ActionCable 看起来如此 非常规 而 Rails 应该是约定优于配置?

谢谢

在您指向 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 语法,可以更有效地模块化您的代码。

How many more are there?

老实说,我不确定。我还没有找到像 the ruby documentation of Action cable 那样广泛的 JS 文档。但是 appendLinecreateLine 不是定义的回调,它们只出现在那个例子中。

// 更新:

可以找到完整列表 here

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

connected

received

disconnected