2011-11-26 1 views
4

스트리밍 및 동시성을 달성하기 위해 EM을 사용 중입니다. 내가 $ ab -c 10 -n 20 http://localhost:3000/으로 테스트하는 동안thin & eventmachine을 사용한 HTTP 스트리밍

$ rackup -s thin -p 3000 async_app.ru 

를 사용하여 다음 랙 응용 프로그램 https://gist.github.com/1394840을 실행 ... 스트리밍과 을 문제가 있고, 응용 프로그램은 parellel 요청을 받아들이는 것 같았다. 큰!

나는 스트리밍을 달성하기를 기대한다. Firefox8에서 테스트 할 때 잘 작동합니다. 그리고 을 사용하면 결과도 예상대로 스트리밍됩니다!

그러나 IE & 크롬에서 테스트 할 때 나중에, 스트리밍 실패, 즉, 세 줄은 해고 요청 후 함께 오초 나타났다 ...

는 내가 뭔가를 놓칠 경우에 필요한 것을 의심 브라우저? 응답 헤더에 Transfer-Encoding:chunked이 없으므로주의해야합니다. 그렇다면 얇음 문제입니까? 어떻게 스트리밍을 씬 또는 크롬으로 구현할 수 있습니까?

감사합니다.

답변

0

분명히 브라우저는 응답의 특정 "양"을 얻을 때까지 페이지를 렌더링하지 않습니다. 이는 in this article을 가리 킵니다.

내가 사파리 6를 테스트 한
body.call ["Hey!\n".ljust(1024)] 

은, 크롬 22, 파이어 폭스 (14)와 그들 모두가 첫 번째 메시지는 더 적은 1 이상 이하 일 때 예상대로 작동하기 시작 : 그래서 다음 시도했습니다. 실제로 Safari는 첫 번째 메시지가 512 바이트 이상인 경우에도 메시지를 인쇄하기 시작했습니다.