ルビー/ラックへのマルチパート応答
質問
私は私のサーバーは、(マルチパート/のX-混合置き換える)マルチパート応答を送信します。私はシナトラのフレームワークや一般的なラックのアプリを使用したソリューションのいくつかの種類を好むだろうが、ルビーのいずれかの例がいいだろう。ここで私はPHPで、何をしようとしているのと同等だ:
<?php
header('Content-type: multipart/x-mixed-replace;boundary="rn9012"');
print "--rn9012\n";
print "Content-type: application/xml\n\n";
print "<?xml version='1.0'?>\n";
print "<content>First Part</content>\n";
print "--rn9012\n";
flush();
sleep(5);
print "Content-type: application/xml\n\n";
print "<?xml version='1.0'?>\n";
print "<content>Second Part</content>\n";
print "--rn9012--\n";
?>
解決
あなたは、おそらくこのためout.flush方法を使用することができます:
class TestController < ApplicationController
def index
render :text => lambda { |resp, out|
out.puts 'start'
out.flush
10.times do
out.puts '.'
out.flush
sleep 1
end
out.puts 'done'
}
end
end
しかし、あなたは(RoRのを使用して多くの人がそうであるように)あなたのRubyコードを提供するために雑種を使用している場合は、あなたがすべてでストリーミングすることができなくなることに注意してください。
所属していません StackOverflow