मैं अपने आवेदन में सर्वर-प्रेषित घटनाओं का लाभ उठाने की कोशिश कर रहा हूं। मैं सिनात्रा और sinatra-sse
मणि का उपयोग कर रहा हूं। यह मणि सिनात्रा stream :keep_alive
कॉल को लपेटता है।प्यूमा के साथ सिनात्रा स्ट्रीमिंग?
थिन पर अपना आवेदन चलाते समय, मुझे बिल्कुल कोई समस्या नहीं है, और मेरी घटना स्ट्रीम अपेक्षा के अनुसार काम करती है। हालांकि, जब मैंने अपने आवेदन को प्यूमा के साथ चलाने के लिए स्विच किया, तो सब कुछ काम करता है, मेरे sse_stream
को छोड़कर बिल्कुल कुछ भी नहीं है! यह सिर्फ एक खाली पृष्ठ देता है।
@@puma_instance = Puma::Server.new MyApp::WebUI
@@puma_instance.add_tcp_listener ip, port
@@puma_instance.run
किसी भी विचार क्या हो रहा है:
मेरे धारा इतनी तरह तो
get "/logstream/:server" do
if rbcserver = MyApp.servers[params[:server]]
sse_stream do |stream|
rbcserver.add_web_logger(stream)
stream.callback { rbcserver.remove_web_logger(stream) }
end
else
error 404
end
end
मैं शुरू कर पतला तरह की स्थापना की है? किसी भी सहायता की सराहना की जाएगी।
संपादित करें: मैं जोड़ने चाहिए कि अपने आवेदन EventMachine का उपयोग करता है: कुछ अधिक जानकारी यह cURL क्या जब प्यूमा
$ curl -L -b cookies.txt -c cookies.txt -i http://localhost:9001/logstream/myserver
HTTP/1.1 200 OK
Content-Type: text/event-stream;charset=utf-8
X-Content-Type-Options: nosniff
Transfer-Encoding: chunked
$
पर चल रहा है जबकि यह पतला
$ curl -L -b cookies.txt -c cookies.txt -i http://localhost:9001/logstream/myserver
HTTP/1.1 200 OK
Content-Type: text/event-stream;charset=utf-8
X-Content-Type-Options: nosniff
Connection: close
Server: thin 1.5.1 codename Straight Razor
event: <event name>
data: <my data>
event: <event name>
data: <my data>
<continues as more data comes in>
संपादित करें पर क्या होता है देता है इसके मूल पर, sinatra_sse
ईएम के युग्मन की संभावना सबसे अधिक संभावना नहीं है।
ठीक है, मेरा एप्लिकेशन EventMachine का भी उपयोग करता है, इसलिए मुझे नहीं लगता कि यह EventMachine के चलते नहीं है। इसके अलावा आपके द्वारा लिंक की गई विशेष पंक्ति का उपयोग केवल डेटा को भेजे जाने पर कनेक्शन को खोलने के लिए किया जाता है। मेरा आवेदन नियमित रूप से डेटा की एक उदार राशि भेजता है, इसलिए मुझे नहीं लगता कि इसके साथ कुछ भी करना है:/ –
@IlyaO। Async.callback के पुमा कार्यान्वयन के लिए रोडब्लॉक को रेखांकित करने वाले पुमा गिथब मुद्दे के लिंक के साथ बस मेरा जवाब संपादित किया। –
बस टिकट एक टक्कर दिया। अगर आपको किसी और को जोड़ने के लिए कुछ भी नहीं है तो मैं आपको बक्षीस दूंगा। –