réponse multipartie en Ruby / Rack
Question
Je veux que mon serveur pour envoyer une réponse multipart (/ x-multipart mixte remplacer). Je préfère une sorte de solution en utilisant le cadre Sinatra ou une application Rack générique, mais aucun exemple dans le rubis serait bien. Voici l'équivalent de ce que je suis en train de faire, en 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";
?>
La solution
Vous pouvez probablement utiliser la méthode out.flush pour cela:
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
Cependant, gardez à l'esprit que si vous utilisez Mongrel pour servir votre code Ruby (autant de personnes qui utilisent RoR font), vous ne serez pas en mesure de diffuser du tout.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow