Hi, sorry for late reply.

In message <e6056acc.0407141125.5d1070ad / posting.google.com>,
 `dejaspam / batkins.com (Bill Atkins)' wrote:
> I'm writing a web application with WEBrick that occasionally has to
> send large streams of data to the browser.  However, WEBrick seems to
> be storing all of the content and then sending it to the user all at
> once.  Is there any way I could periodically flush WEBrick's output so
> the user doesn't have to stare at a blank screen while the server is
> working?

If the body of response is IO, its output will be flushed
with every reading of 4096 bytes chunk.

  require "webrick"

  class Streamlet < WEBrick::HTTPServlet::AbstractServlet
    def do_GET(req, res)
      res["content-type"] = "text/plain"
      reader, writer = IO.pipe
      Thread.start{
        10000.times{|i|
          puts i
          writer << "a" * 1000
          writer << "\n"
        }
        writer.close
      }
      res.body = reader
    end
  end

  httpd = WEBrick::HTTPServer.new(:Port=>10080)
  httpd.mount("/", Streamlet)
  trap(:INT){ httpd.shutdown }
  httpd.start

regards,

-- 
gotoyuzo