2010-11-22 14 views
8

मैंने एक Asynchronous version of Rails 3 बनाया है जिसे मैं वेबस्केट कार्यान्वयन के साथ एकीकृत करना चाहता हूं।रैक और इवेंट मशीन का उपयोग कर रेल के साथ वेबस्केट को एकीकृत करना

मैं इवेंटमैचिन, रुबी 1.9, फाइबर और विभिन्न एम-स्वाद वाले पुस्तकालयों का उपयोग कर रहा हूं जैसा कि बुरी तरह अच्छे Ilya Grigorik द्वारा दस्तावेज किया गया है।

मैं em-websocket को वेबसॉकेट कनेक्शन के हैंडलर के रूप में देख रहा हूं लेकिन इसे रेल ऐप में जोड़ने के लिए सबसे अच्छा तरीका अनिश्चित है।

आदर्श रूप में, यह इसी तरह से काम एक्सप्रेस और Socket.io साथ Node.js को होगा - इनकमिंग कनेक्शन का पता चला जाना चाहिए और WebSocket हैंडलर के लिए भेजा या नियमित रूप से रेल ढेर के रूप में HTTP हेडर ने संकेत दिया & आदि

टी एल; डॉ

  • WebSocket हैंडलर कि एक मौजूदा रेल आवेदन में प्लग
  • पारदर्शी एप्लिकेशन
+1

आप अधिक विशिष्ट बुलेट बिंदुओं आप का जवाब चाहते हैं की एक श्रृंखला में अपने प्रश्न टूट सोच सकते हैं। – kanaka

उत्तर

1

में अंतिम बिंदुओं को भेजे WebSocket अनुरोध प्रेषण शायद socky कोशिश? अभी के लिए यह सबसे अच्छा है और रेल के साथ इसे एकीकृत करना बहुत आसान है (दोनों 2 और 3)

+0

कूल, एक नज़र देखें –

+0

सॉकी बहुत अच्छा है, लेकिन एक्सप्रेस और सॉकेट.ओओ के रास्ते में रेलों में काफी एकीकृत नहीं है। रेल में कुछ और कड़े घाव के आधार के रूप में इसका उपयोग करने में सक्षम हो सकता है। –

2

Skinny देखें।

आप Thin का उपयोग करना होगा, लेकिन आप एक HTTP अनुरोध मध्य कदम उन्नयन कर सकते हैं। मैं इसे सिनात्रा ऐप में उपयोग करता हूं, लेकिन इसे रेल में आसानी से इस्तेमाल किया जाना चाहिए।

5

मुझे पता है कि यह प्रश्न पुराना है लेकिन उम्मीद है कि यह उत्तर उन लोगों की सहायता कर सकता है जो यहां Google से निर्देशित हैं।

मैं एक मणि पर काम कर रहा हूं जो मूल प्रश्न में दो मुख्य मानदंडों को पूरा करता है। मणि को websocket-rails कहा जाता है और रेलवे एप्लिकेशन ड्रॉप मृत सरल के अंदर वेबसाकेट्स का उपयोग करने के लिए ग्राउंड अप से विकसित किया गया है। यह अंततः एक स्थिर रिलीज पर है, लेकिन एक बहुत अधिक कार्यक्षमता है जिसे मुझे विश्वास है कि इसकी जरूरत है।

वर्तमान में, ईवेंट हैंडलिंग बहुत बुनियादी है। events.rb फ़ाइल है जहां आप routes.rb फ़ाइल के समान नियंत्रक क्रियाओं के लिए क्लाइंट साइड ईवेंट मैप करते हैं। /websocket पर सभी अनुरोध एक अलग सर्वर प्रक्रिया की आवश्यकता के बिना एम्बेडेड वेबसॉकेट सर्वर से गुज़र चुके हैं।

प्रोजेक्ट का अधिक महत्वाकांक्षी लक्ष्य अंततः रेल को एक और पारंपरिक एमवीसी पैटर्न में ले जाना है, जहां क्लाइंट ब्राउज़र पर घटनाएं सर्वर पर प्रसंस्करण और अद्यतन करने के लिए सर्वर पर बबल हो जाती हैं, जो क्लाइंट पर ईवेंट को स्वचालित रूप से प्रस्तुत करने के लिए ट्रिगर करती है उस मॉडल का प्रतिनिधित्व।

किसी भी प्रतिक्रिया की सराहना की जाएगी।