class AnyCable::Rack::BroadcastSubscribers::BaseSubscriber

Attributes

coder[R]
hub[R]

Public Class Methods

new(hub:, coder:, **options) click to toggle source
# File lib/anycable/rack/broadcast_subscribers/base_subscriber.rb, line 13
def initialize(hub:, coder:, **options)
  @hub = hub
  @coder = coder
end

Public Instance Methods

start() click to toggle source
# File lib/anycable/rack/broadcast_subscribers/base_subscriber.rb, line 18
def start
  # no-op
end
stop() click to toggle source
# File lib/anycable/rack/broadcast_subscribers/base_subscriber.rb, line 22
def stop
  # no-op
end

Private Instance Methods

handle_message(msg) click to toggle source
# File lib/anycable/rack/broadcast_subscribers/base_subscriber.rb, line 28
def handle_message(msg)
  log(:debug) { "Received pub/sub message: #{msg}" }

  data = JSON.parse(msg)
  if data["stream"]
    hub.broadcast(data["stream"], data["data"], coder)
  elsif data["command"] == "disconnect"
    hub.disconnect(data["payload"]["identifier"], data["payload"]["reconnect"], coder)
  end
end