Spec-Zone.ru › Ruby on Rails 7.2

модуль ActionCable::Server::Broadcasting

Action Cable Broadcasting

Broadcasting — способ, которым другие части вашего приложения могут отправлять сообщения подписчикам канала. Как описано в Channel, в большинстве случаев эти трансляции передаются напрямую клиентам, подписанным на указанный канал трансляции. Давайте рассмотрим пример с полным стеком:

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']

Открытые методы экземпляра

broadcast(broadcasting, message, coder: ActiveSupport::JSON) Показать исходный код
# File actioncable/lib/action_cable/server/broadcasting.rb, line 31
def broadcast(broadcasting, message, coder: ActiveSupport::JSON)
  broadcaster_for(broadcasting, coder: coder).broadcast(message)
end

Транслирует хеш напрямую в указанный broadcasting. В дальнейшем он будет закодирован в JSON.

broadcaster_for(broadcasting, coder: ActiveSupport::JSON) Показать исходный код
# File actioncable/lib/action_cable/server/broadcasting.rb, line 38
def broadcaster_for(broadcasting, coder: ActiveSupport::JSON)
  Broadcaster.new(self, String(broadcasting), coder: coder)
end

Возвращает транслятор для указанного broadcasting, который можно повторно использовать. Полезно, когда у вас есть объект, которому может потребоваться передавать информацию в определённый канал трансляции многократно.

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API