class Thin::Connection

def receive_data(data)

def receive_data(data)
  trace { data }
  case @serving
  when :websocket
    callback = @request.env[Thin::Request::WEBSOCKET_RECEIVE_CALLBACK]
    callback.call(data) if callback
  else
    if @request.parse(data)
      if @request.websocket?
        @request.env['em.connection'] = self
        @response.persistent!
        @response.websocket = true
        @serving = :websocket
      end
      process
    end
  end
rescue Thin::InvalidRequest => e
  log "!! Invalid request"
  log_error e
  close_connection
end