استجابة متعددة في روبي / رف
سؤال
وأريد خدمة بلدي لتقوم بإرسال استجابة متعددة (/ متعددة الأشعة مختلطة-استبدال). كنت تفضل نوعا من الحل باستخدام الإطار سيناترا أو التطبيق الرف عام، ولكن أي سبيل المثال في روبي يكون لطيفا. وفيما يلي ما يعادل ما أحاول القيام به، في 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
ومع ذلك، نضع في اعتبارنا أنه إذا كنت تستخدم هجين لخدمة متاحة روبي الخاص بك (وكثير من الناس باستخدام رور تفعل)، فإنك لن تكون قادرا على تيار على الإطلاق.
لا تنتمي إلى StackOverflow