Eric Hodel
4/1/2007 5:37:00 AM
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.
>