модуль ActionCable::Server::Broadcasting
Вещание — это способ, с помощью которого другие части вашего приложения могут отправлять сообщения подписчикам канала. Как описано в канале, в большинстве случаев это вещание транслируется непосредственно клиентам, подписанным на указанный канал. Давайте рассмотрим пример с полным стеком:
class WebNotificationsChannel < ApplicationCable::Channel
def subscribed
stream_from "web_notifications_#{current_user.id}"
end
end
# Somewhere in your app this is called, perhaps from a NewCommentJob:
ActionCable.server.broadcast \
"web_notifications_1", { title: "New things!", body: "All that's fit for print" }
# Client-side CoffeeScript, which assumes you've already requested the right to send web notifications:
App.cable.subscriptions.create "WebNotificationsChannel",
received: (data) ->
new Notification data['title'], body: data['body'] Публичные методы экземпляра
# File actioncable/lib/action_cable/server/broadcasting.rb, line 24 def broadcast(broadcasting, message, coder: ActiveSupport::JSON) broadcaster_for(broadcasting, coder: coder).broadcast(message) end
Вещание хэша напрямую в указанный broadcasting. Позже он будет закодирован в JSON.
# File actioncable/lib/action_cable/server/broadcasting.rb, line 30 def broadcaster_for(broadcasting, coder: ActiveSupport::JSON) Broadcaster.new(self, String(broadcasting), coder: coder) end
Возвращает вещатель для указанного broadcasting, который можно повторно использовать. Полезно, когда у вас есть объект, которому может потребоваться многократная передача в определённый канал.
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.