Http потоковое с тонкой и событийной машины - PullRequest
4 голосов
/ 26 ноября 2011

Я играю с 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?

спасибо!

1 Ответ

0 голосов
/ 11 октября 2012

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

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

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

...