Ruby on Rails 5.2 - ActionCable::Server::Broadcasting

मॉड्यूल ActionCable :: सर्वर :: प्रसारण




ruby

मॉड्यूल ActionCable :: सर्वर :: प्रसारण

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

सार्वजनिक प्रवृत्ति के तरीके

प्रसारण (प्रसारण, संदेश, कोडर: ActiveSupport :: JSON) स्रोत दिखाएँ
# 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 नाम पर broadcasting । यह बाद में JSON एनकोडेड होगा।

Broadcaster_for (प्रसारण, कोडर: ActiveSupport :: 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

नामांकित प्रसारण के लिए एक ब्रॉडकास्टर लौटाता है जिसका पुन: उपयोग किया जा सकता है। उपयोगी जब आपके पास एक वस्तु होती है जिसे एक विशिष्ट प्रसारण के लिए और अधिक प्रसारित करने के लिए कई स्थानों की आवश्यकता हो सकती है।