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";

?>
Était-ce utile?

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
scroll top