# File lib/faye/websocket/draft75_parser.rb, line 30
      def parse(buffer)
        buffer.each_byte do |data|
          case @stage
            when 0 then
              parse_leading_byte(data)

            when 1 then
              value = (data & 0x7F)
              @length = value + 128 * @length

              if @closing and @length.zero?
                @socket.close(nil, nil, false)
              elsif (0x80 & data) != 0x80
                if @length.zero?
                  @socket.receive('')
                  @stage = 0
                else
                  @buffer = []
                  @stage = 2
                end
              end

            when 2 then
              if data == 0xFF
                @socket.receive(WebSocket.encode(@buffer))
                @stage = 0
              else
                @buffer << data
                if @length and @buffer.size == @length
                  @stage = 0
                end
              end
          end
        end

        nil
      end