Потоковая передача HTTP с помощью Thin & EventMachine

Я играю с EM, чтобы добиться потоковой передачи и параллелизма. У меня возникла проблема с потоковой передачей... Я запускаю следующее стоечное приложение https://gist.github.com/1394840< /а> используя

$ rackup -s thin -p 3000 async_app.ru

Во время тестирования с $ ab -c 10 -n 20 http://localhost:3000/ приложение принимало параллельные запросы. Здорово!

Я ожидаю, что тем временем он достигнет потоковой передачи. Когда я тестирую его в Firefox8, он работает так хорошо. А при использовании $ curl -i http://localhost:3000/ результат передается так же, как и ожидалось!

Но позже при тестировании в IE и Chrome потоковая передача не удалась, то есть три строки появились вместе только через 5 секунд после запуска запроса...

Я сомневался, что если я пропущу что-то требуемое браузером? Я заметил, что в заголовках ответов не было Transfer-Encoding:chunked, так что это имеет значение? Если да, то проблема в Тони? Как я могу реализовать потоковую передачу с тонким или в Chrome?

Спасибо!


person clc3123    schedule 26.11.2011    source источник


Ответы (1)


По-видимому, браузеры не начнут отображать страницу, пока не получат определенное «количество» ответов, как указано в этой статье. Итак, я пробовал следующее:

  body.call ["Hey!\n".ljust(1024)]

Я тестировал его с Safari 6, Chrome 22 и Firefox 14, и все они начинают работать должным образом, когда первое сообщение было не менее 1 Кб. На самом деле Safari начал печатать сообщения, даже если первое было больше 512 байт.

person jafrog    schedule 11.10.2012