class Firehose::Rack::Consumer::HttpLongPoll::MultiplexingHandler

Public Instance Methods

handle_request(request, env) click to toggle source
# File lib/firehose/rack/consumer/http_long_poll.rb, line 148
def handle_request(request, env)
  subscriptions = Consumer.multiplex_subscriptions(request)
  log_request request, subscriptions, env
  subscriptions.each do |sub|
    respond_async(sub[:channel], sub[:message_sequence], env)
  end
end
log_request(request, subscriptions, env) click to toggle source
# File lib/firehose/rack/consumer/http_long_poll.rb, line 140
def log_request(request, subscriptions, env)
  if request.post?
    Firehose.logger.debug "HTTP multiplexing POST, subscribing #{subscriptions.inspect}"
  else
    Firehose.logger.debug "HTTP multiplexing GET with query #{env["QUERY_STRING"].inspect}"
  end
end
wrap_frame(channel, message) click to toggle source
# File lib/firehose/rack/consumer/http_long_poll.rb, line 136
def wrap_frame(channel, message)
  JSON.generate channel: channel, :message => message.payload, :last_sequence => message.sequence
end