मैं अगर आप में से किसी अंतर्दृष्टि के बारे में जो एक बेहतर है, और क्या कारकों जब इनवास्तविक समय माणिक क्षुधा: CRAMP बनाम Node.js
उत्तर
मैं एक लिख रहा हूँ से एक का उपयोग को ध्यान में रखा जाना चाहिए था सोच रहा था फिलहाल रेल (3) और क्रैम्प का उपयोग करके कुछ हद तक गैर-तुच्छ वेब ऐप। मुझे नोड.जेएस के साथ कोई अनुभव नहीं है, और मैंने केवल क्रैम्प का उपयोग करना शुरू कर दिया है, लेकिन यह आशाजनक प्रतीत होता है। और मेरी राय में, रुबी का उपयोग करने में सक्षम होना एक बड़ा प्लस है! (आई) क्षमा करें अजगर प्रशंसकों तूफान (अजगर के साथ शुरू किया और भाषा को सहन नहीं कर सका।!)
नकारात्मक पक्ष यह है कि मैं दर्द पर बहुत, बहुत थोड़ा तृतीय-पक्ष सामग्री पाया है है। मुझे लगता है कि यह आश्चर्यजनक नहीं है कि यह कितना नया है, लेकिन आप अपने आप से कम या कम हैं। अगर आपको अपने हाथ की जरूरत है, तो आपको शायद क्रैम्प का उपयोग नहीं करना चाहिए।
मैंने थोड़ी देर पहले क्रैम्प और रेल के साथ खेला। क्लाइंट्स और सर्वर के बीच डेटा को आगे और आगे चैनल करने के लिए वेबस्केट्स का उपयोग करके गतिशील अपडेट के साथ एक दृश्य बनाने का प्रयास कर रहा था। यह क्रोम के साथ पूरी तरह से काम करता है, लेकिन सफारी 5 और एफएफ वेबसाइकिल प्रोटोकॉल का एक नवीनतम संस्करण लागू करता है और क्रैम्प ऐसा नहीं करता है कि मैं इसे वहां काम नहीं कर सका।
मैं मानता हूं कि पूरे ढेर के लिए रूबी का उपयोग करना अच्छा है, लेकिन मुझे लगता है कि कुछ पहलुओं में वक्र के पीछे अभी क्रैम्प थोड़ा पीछे है।
मैंने बुलेट काटने का फैसला किया और मेरी सामग्री के लिए node.js (और सॉकेटियो पैकेज) का उपयोग करने का फैसला किया।
शुभकामनाएं!
क्रैम्प के विभिन्न रिपो देखें। वेबसाकेट लक्ष्य बढ़ रहे हैं, और किनारे पर रहना इतना आसान नहीं है। github.com/maccman/cramp कांटा रेसेंट websockets कार्यान्वयन के साथ काम करता है, जबकि मूल क्रैम्प अद्यतित नहीं है और refactoring के तहत है। इवेंटमाचिन-websockets पर भी एक नज़र डालें। वैसे भी - सर्वरसाइड पर पतली + eventmachine का उपयोग करने के लिए prepeared हो। क्रैम्प के साथ आपको उत्पादन मोड में पतला भागना चाहिए, क्रैम्प अभी तक अच्छा नहीं है।
मैं अन्य (नोड.जेएस) पक्ष से अधिक बात कर सकता हूं। मैंने अभी एक मणि लिखा है जो रेल 3 के साथ एकीकृत करता है जो Redis PUBSUB संदेशों को सुनने के लिए नोड.जेएस बैक-एंड का उपयोग करता है और रेल के सामने के अंत को अपडेट करता है।
सॉकेट.आईओ + नोड को रेल ऐप (विशेष रूप से अगर jQuery के साथ काम करना) के साथ एकीकृत करना मुश्किल नहीं है, लेकिन आपके लक्षित ब्राउज़र बेस (आईई 7 की तरह) के आधार पर, सभी मामलों में सही काम करना मुश्किल हो सकता है, अर्थात् फ्लैश सॉकेट का उपयोग फॉलबैक के रूप में करते समय कुछ अजीब मामलों की वजह से (आमतौर पर जहां वेबस्केट काम नहीं करते हैं)।
उसने कहा, मैं अत्यधिक Node.js + सॉकेट.आईओ की सलाह देता हूं। यह बहुत हल्का वजन है जिसमें कई विकल्प और लचीलापन है जो आप चाहते हैं कि लगभग कुछ भी करने के लिए विस्तारित हो। मेरी राय में, रेल बड़े ऐप्स बनाने के लिए एक शानदार वेब ढांचा है जिसे कम्प्यूटेशनल भारी फ्रंट-एंड की आवश्यकता होती है। मैं इसे छोटे, ईवेंट संचालित अनुप्रयोगों के लिए उपयोग करने का विकल्प नहीं चुनूंगा क्योंकि यह अकेले ढांचे के लिए बहुत मेमोरी का उपयोग करता है। मुझे रुबी/रेल पसंद है, लेकिन जब त्वरित और साफ घटना प्रसंस्करण/संदेश हैंडलिंग के लिए कुछ की आवश्यकता होती है, तो नोड का मेरा वोट होता है।
यदि आपको अधिक ठोस उदाहरणों की आवश्यकता है, तो मेरी परियोजना Kthxbye (एक Resque-esque क्लोन) रेडिस के साथ संचार करती है जो बदले में नोड.जेएस द्वारा सुनाई देती है जो बदले में एक वेब एप्लिकेशन अपडेट कर सकती है।
प्लगइन: http://github.com/plukevdh/kthxbye (देखें: http://github.com/plukevdh/kthxbye/blob/master/lib/generators/kthxbye/templates/kthxbye.js)
नोड बैकएंड: http://github.com/plukevdh/kthxbye-node (देखें: http://github.com/plukevdh/kthxbye-node/blob/master/poll.js)
(। क्षमा याचना नोड परियोजना पर प्रलेखन का पूर्ण अभाव के लिए)
आप रूबी पक्ष पर खुद को क्रैम्प क्यों सीमित कर रहे हैं?
आप websocket-rails के साथ रीयल-टाइम ऐप्स के लिए भी रेल का उपयोग कर सकते हैं।
तुम भी वास्तविक समय चौखटे इस्तेमाल कर सकते हैं इस तरह के Plezi या Volt ... दोनों वाल्ट और Plezi दर्द की तुलना में बेहतर काम करते हैं, मेरी राय में (लेकिन मैं पक्षपाती हूँ, जैसा कि मैंने Plezi ढांचे लिखा था) के रूप में।
यहाँ Plezi के साथ एक सरल गूंज WebSocket सर्वर है:
require 'plezi'
class EchoCtrl
def index
redirect_to 'http://www.websocket.org/echo.html'
end
def on_message data
# to broadcast the data add:
# broadcast :_send_message, data
_send_message data
end
def _send_message data
response << data
end
end
listen
# you can add, a socket.io route for JSON with socket.io
route '/socket.io', EchoCtrl
route '/', EchoCtrl
# exit the irb console to finish the setup and start the Plezi server
exit
बस इस एक पर एक टक्कर, ऐंठन विकास दिखाई देता है एक समय पहले (लगभग 2 साल पहले) ठप की है - एक पुल अनुरोध हुई है (या दो) एक साल पहले स्वीकार किया, और यह इसके बारे में है। - मैं कोड की स्थिति के बारे में और कुछ नहीं कह सकता, क्योंकि गतिविधि की कमी ने मुझे इससे दूर कर दिया है। - मैं अभी भी इसका परीक्षण कर सकता हूं, जब तक कि मुझे पहले एक और व्यावहारिक समाधान न मिल जाए। – ocodo