Http流媒体与瘦&eventmachine
我正在玩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
在响应头Transfer-Encoding:chunked
,所以它重要吗? 如果是这样,那是Thin的问题吗? 如何使用精简版或Chrome实现流式传输?
谢谢!
显然,浏览器不会开始呈现页面,直到它们获得某些“响应量”,正如本文中所指出的那样。 所以我试过以下:
body.call ["Hey!\n".ljust(1024)]
我已经使用Safari 6,Chrome 22和Firefox 14进行了测试,当第一条消息不低于1 Kb时,它们都按预期开始工作。 实际上,即使第一个消息超过512个字节,Safari也开始打印消息。