On Mar 31, 2007, at 18:20, Ry wrote:

> Can someone explain to me why the following serverlet doesn't stream
> Hellos.
>
> require 'webrick'
>
> class Streamlet < WEBrick::HTTPServlet::AbstractServlet
>   def do_GET(req, res)
>     res["content-type"] = "text/plain"
>     r, w = IO.pipe
>     res.body = r
>     res.chunked = true
>
>     Thread.new do
>       5.times do |i|

I believe that 5 isn't enough hellos to fill up a chunk.  Changing  
this to loop do ... end causes webrick to give you infinite hellos.

>         w.write("hello #{i}\n")
>         sleep(1)
>       end
>       w.close
>     end
>   end
> end
>
> @server = WEBrick::HTTPServer.new(:Port => 4711)
> @server.mount("/stream", Streamlet)
>
> trap("INT") { @server.shutdown }
> @server.start
>
> Thank you.
>