我正在尝试设置我的Rails 5 ActionCable
以便将更新广播到我的数据库。到目前为止,我已经开始了,但我意识到ActionCable上的文档有点缺乏。对于我的情况,我想知道我允许放入函数subscriptions.create()
的回调列表。
例如
const consumer = ActionCable.createConsumer();
consumer.subscriptions.create(
'ChatsChannel'
{
received: someCallback,
connected: otherCallback,
disconnected: anotherCallback
}
)
我注意到
有appendLine
和createLine
第5.4节http://guides.rubyonrails.org/action_cable_overview.html
还有多少人?它们对应的是什么?这与Node.js和Python上通常的websocket有很大的不同。使用socket.io,我只有4个选项,open
,close
,error
和message
。当Rails被认为是约定优于配置时,为什么ActionCable
看起来如此非常规?
由于
答案 0 :(得分:1)
答案 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>
"""
在此代码中,appendLine
和createLine
只是在那里定义的回调,分别由@appendLine
和@createLine
指向。这只是CoffeeScript语法,可以更富有表现力地对您的代码进行模块化。
还有多少?
老实说,我不确定。我没有找到与the ruby documentation的Action电缆一样广泛的JS文档。但是appendLine
和createLine
并未定义回调,它们仅在该示例中出现。
//更新:
完整列表可在here中找到。