module DrunkMonkey::Transport

Public Class Methods

call(env, options = {}) click to toggle source
# File lib/drunkmonkey/transport.rb, line 13
def self.call env, options = {}
  request = Rack::Request.new(env)
  if websocket? env
    WebSocket.resume request, options
    [500,{},[]]
  else
    body = Comet.resume request, options
    [200,{},[body]]
  end
end
websocket?(env) click to toggle source

Taken from github.com/simulacre/sinatra-websocket/ Originally taken from skinny github.com/sj26/skinny

# File lib/drunkmonkey/transport.rb, line 7
def self.websocket? env
  env['HTTP_CONNECTION'] && env['HTTP_UPGRADE'] &&
    env['HTTP_CONNECTION'].split(',').map(&:strip).map(&:downcase).include?('upgrade') &&
    env['HTTP_UPGRADE'].downcase == 'websocket'
end