के माध्यम से इवेंटसोर्स/सर्वर-प्रेषित घटनाक्रम stream
ब्लॉक के साथ सिनात्रा का उपयोग कर सर्वर पर।Nginx
get '/stream', :provides => 'text/event-stream' do
stream :keep_open do |out|
connections << out
out.callback { connections.delete(out) }
end
end
ग्राहक के पक्ष में:
var es = new EventSource('/stream');
es.onmessage = function(e) { $('#chat').append(e.data + "\n") };
जब मैं सीधे एप्लिकेशन का उपयोग करके, http://localhost:9292/
के माध्यम से, सब कुछ सही काम करता है। कनेक्शन लगातार है और सभी संदेश सभी ग्राहकों को पास कर दिए जाते हैं।
हालांकि जब यह निगेंक्स, http://chat.dev
के माध्यम से जाता है, तो कनेक्शन गिरा दिया जाता है और एक दूसरे से दोबारा आग लग जाती है।
Nginx सेटअप मेरे लिए ठीक लग रहा है:
upstream chat_dev_upstream {
server 127.0.0.1:9292;
}
server {
listen 80;
server_name chat.dev;
location/{
proxy_pass http://chat_dev_upstream;
proxy_buffering off;
proxy_cache off;
proxy_set_header Host $host;
}
}
location
में keepalive 1024
upstream
अनुभाग के साथ ही proxy_set_header Connection keep-alive;
में की कोशिश की।
कुछ भी नहीं है में मदद करता है :(
कोई लगातार कनेक्शन और संदेशों को किसी भी ग्राहकों को पारित नहीं किया।
ओह, वह था! अभी व्यस्त हूँ! सार्वजनिक रूप से मेरे उबेर-चैट लॉन्च करना! आपका बहुत बहुत धन्यवाद! –
यह मेरे नोडिक्स सर्वर के लिए ngix के साथ अच्छी तरह से काम करता है, मैं EventSource.thanks का भी उपयोग कर रहा हूं। –
बहुत अच्छा काम करता है। मैन, डीबग करना मुश्किल था। बहुत बहुत धन्यवाद! –