我正在玩EM来实现流媒体和并发。我遇到了流式传输问题... 我使用
运行以下机架应用https://gist.github.com/1394840$ rackup -s thin -p 3000 async_app.ru
在使用$ ab -c 10 -n 20 http://localhost:3000/
进行测试时,该应用似乎接受了parellel请求。太好了!
我希望它同时实现流媒体。当我在Firefox8中测试它时,它运行良好。使用$ curl -i http://localhost:3000/
,结果也会按预期流式传输!
但后来在IE& Chrome,流式传输失败,也就是说,三条线只在请求被解雇后5秒钟出现......
我怀疑如果我错过了浏览器所需的内容?我注意到响应头中没有Transfer-Encoding:chunked
,这有关系吗?如果是这样,那是Thin的问题吗?如何使用精简版或Chrome实现流式传输?
谢谢!
答案 0 :(得分:0)
显然,浏览器不会开始呈现页面,直到他们获得一定数量的响应,因为它指出in this article。所以我试过以下:
body.call ["Hey!\n".ljust(1024)]
我已经使用Safari 6,Chrome 22和Firefox 14进行了测试,当第一条消息不低于1 Kb时,它们都按预期开始工作。实际上,即使第一个消息超过512个字节,Safari也开始打印消息。