Потоковый ответ в Rails / Mongrel - PullRequest
1 голос
/ 23 июня 2010

Я пытаюсь отправить потоковый ответ в приложении Rails, в частности, используя тип контента multipart/x-mixed-replace. Насколько я могу судить, потоковые ответы не поддерживаются Rails, поскольку контейнер пытается буферизовать и определить длину тела ответа перед отправкой чего-либо клиенту.

Кстати, мы развертываем наше Rails-приложение с Mongrel, и кажется, что пользовательские обработчики Mongrel могут нормально передавать данные и даже хорошо играть с приложениями Rails . Мне удалось создать собственный обработчик, но я не могу понять, как заставить его работать вместе с приложением Rails.

Например, я бы хотел, чтобы все запросы к URI /foo.* отправлялись пользовательским обработчиком, а все остальные обрабатывались Rails. Может кто-нибудь посоветовать, как это сделать? Я не могу воспроизвести результаты из связанной статьи выше. Или есть более простой способ получить обработчик Rails для получения открытого потокового ответа?

1 Ответ

0 голосов
/ 23 июня 2010

Виновником была фиктивная монгрелская установка на OS X. Правильная установка работает нормально, используя указания из связанной статьи , используя простой обработчик, подобный приведенному ниже:

# foo_handler.rb
class FooHandler < Mongrel::HttpHandler
  # def process(req, res); streaming_impl; end 
end
# Usage: mongrel_handler start -S foo_handler.rb
uri "/foo", :handler => FooHandler.new
...