class AnyCable::Rack::BroadcastSubscribers::HTTPSubscriber
HTTP Pub/Sub subscriber
Attributes
path[R]
token[R]
Public Class Methods
new(**options)
click to toggle source
Calls superclass method
AnyCable::Rack::BroadcastSubscribers::BaseSubscriber::new
# File lib/anycable/rack/broadcast_subscribers/http_subscriber.rb, line 12 def initialize(**options) super @token = options[:token] @path = options[:path] end
Public Instance Methods
call(env)
click to toggle source
# File lib/anycable/rack/broadcast_subscribers/http_subscriber.rb, line 22 def call(env) req = ::Rack::Request.new(env) return invalid_request unless req.post? if token && req.get_header("HTTP_AUTHORIZATION") != "Bearer #{token}" return invalid_request(401) end handle_message req.body.read [201, {"Content-Type" => "text/plain"}, ["OK"]] end
start()
click to toggle source
# File lib/anycable/rack/broadcast_subscribers/http_subscriber.rb, line 18 def start log(:info) { "Accepting pub/sub request at #{path}" } end
Private Instance Methods
invalid_request(code = 422)
click to toggle source
# File lib/anycable/rack/broadcast_subscribers/http_subscriber.rb, line 38 def invalid_request(code = 422) [code, {"Content-Type" => "text/plain"}, ["Invalid request"]] end