# File lib/faye/eventsource.rb, line 26
    def initialize(env, options = {})
      @env    = env
      @ping   = options[:ping]
      @retry  = (options[:retry] || DEFAULT_RETRY).to_f
      @url    = EventSource.determine_url(env)
      @stream = Stream.new(self)

      @ready_state = CONNECTING
      @send_buffer = []
      EventMachine.next_tick { open }

      callback = @env['async.callback']
      callback.call([101, {}, @stream])

      @stream.write("HTTP/1.1 200 OK\r\n" +
                    "Content-Type: text/event-stream\r\n" +
                    "Cache-Control: no-cache, no-store\r\n" +
                    "Connection: close\r\n" +
                    "\r\n\r\n" +
                    "retry: #{ (@retry * 1000).floor }\r\n\r\n")

      @ready_state = OPEN

      if @ping
        @ping_timer = EventMachine.add_periodic_timer(@ping) { ping }
      end
    end