respuesta multiparte en Ruby / estante
Pregunta
Quiero que mi servidor para enviar una respuesta multiparte (multiparte / x-mixed-replace). Yo preferiría algún tipo de solución utilizando el marco de Sinatra o una aplicación en rack genérico, pero ningún ejemplo en el rubí estaría bien. Aquí está el equivalente de lo que estoy tratando de hacer, 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";
?>
Solución
Puede utilizar probablemente el método out.flush para esto:
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
Sin embargo, tenga en cuenta que si usted está utilizando Mestizo para servir a su código Ruby (como muchas personas que utilizan RoR lo hacen), usted no será capaz de transmitir a todos.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow