2009-06-07 17 views
31

मैं एक ऐसे वेब एप्लिकेशन का निर्माण कर रहा हूं जिसमें रीयल-टाइम फ़ीड (फेसबुक के न्यूजफीड के समान) है जिसे मैं एक लंबे मतदान तंत्र के माध्यम से अपडेट करना चाहता हूं। मैं समझता हूं कि पायथन के साथ, मेरे विकल्प स्टैकलेस (उनके धूमकेतु wsgi उदाहरण से निर्माण) या धूमकेतु + मुड़ने के लिए बहुत अधिक हैं। दुर्भाग्य से इन विकल्पों के बारे में बहुत कम दस्तावेज है और मुझे पाइथन पर धूमकेतु के उत्पादन पैमाने के उपयोगकर्ताओं के बारे में ऑनलाइन अच्छी जानकारी नहीं मिल रही है।पायथन धूमकेतु सर्वर

क्या किसी ने उत्पादन प्रणाली में पाइथन पर सफलतापूर्वक धूमकेतु लागू किया है? आप इसे करने के बारे में कैसे गए और मुझे अपना खुद का कार्यान्वयन करने के लिए संसाधन कहां मिल सकते हैं?

उत्तर

9

के साथ socket.io मैं तुम्हें StreamHub Comet Server का उपयोग करें लोग - व्यक्तिगत रूप से मैं इसे चलाने वाली कुछ Django साइटों के साथ इसका उपयोग करता हूं। स्ट्रीमिंग को संभालने के लिए आपको जावा का एक छोटा सा लिखना होगा - मैंने इसे Jython का उपयोग करके किया था। सामने के अंत कोड कुछ असली सरल जावास्क्रिप्ट एक ला है:

StreamHub hub = new StreamHub(); 
hub.connect("http://myserver.com/"); 
hub.subscribe("newsfeed", function(sTopic, oData) { alert("new news item: " + oData.Title); }); 

प्रलेखन बहुत अच्छी है - मैं तुम्हें Cometd एट अल के विरल डॉक्स के साथ शुरू करने की कोशिश कर के रूप में इसी तरह की समस्या थी।एक शुरुआत के लिए मैं Getting Started With Comet and StreamHub, डाउनलोड पढ़ सकते हैं और देखते हैं कि कैसे कुछ उदाहरण काम करते हैं और एपीआई डॉक्स का संदर्भ है, तो आप की जरूरत करने के लिए चाहते हैं:

2

मैंने इसे नहीं किया है, लेकिन this guy ने इसके बारे में एक अच्छा लेख लिखा है और Django उदाहरणों और पॉइंटर्स (जिन्हें मैंने चेक नहीं किया है) के साथ अन्य ढांचे में लिखा है।

4

मैंने इस तरह की चीजों के लिए मुड़ते हुए कई एपीआई किए हैं, जिनमें से अधिकांश मेरे github खाते पर उपलब्ध हैं।

अधिकांश क्लाइंट-साइड हैं, लेकिन slosh एक ऐसा सर्वर है जिसे मैंने रीयलटाइम सस्ते पबब प्रकार की चीज़ करने के लिए लिखा था। यह सरल धारा प्रतिकृति के लिए अनुमति देकर पढ़ने के लिए क्षैतिज रूप से स्केल करता है। जब आप सादे HTTP पर चिपके रहते हैं तो लेखन थोड़ा अलग होते हैं, लेकिन मैंने डेमो के लिए इसके माध्यम से एक सभ्य राशि को धक्का दिया है।

अन्यथा, आपके पास पूर्ण-बीओएसएच है जो अधिकांश एक्सएमपीपी सर्वर समर्थन करते हैं और आपको वेब फ्रंटेंड से संदेश वितरण को रद्द करने की अनुमति देंगे।

13

Orbited एक अच्छा समाधान के रूप में लगता है। हालांकि कोशिश नहीं की है।


अद्यतन: बातें पिछले 2.5 साल में बदल गया है।

अब आईई (स्वाभाविक रूप से) और इसके अलावा कुछ बहुत अच्छे abstractions को छोड़कर, हम सभी प्रमुख ब्राउज़रों में websockets है, जो वास्तविक समय संचार अनुकरण करने के कई तरीकों प्रदान करते हैं। का एक बहुत द्वारा अपने इस्तेमाल किया -

+0

कक्षा की कमी बहुत कम दस्तावेज़ीकरण है। –

+0

कक्षाबद्ध और लिंक मृत लगता है? यह अब स्वस्थ जीवनशैली कहानियों और अन्य सामानों के बारे में एक ब्लॉग की ओर जाता है .. – twity1337

6

यहाँ एक पूर्ण है एक वास्तविक समय (धूमकेतु) ऐप बनाने के लिए Django, Orbited, और ट्विस्ट के संयोजन का विशेष उदाहरण: http://github.com/clemesha/hotdot पायथन का उपयोग कर।

1

कक्षाबद्ध और रेडिस समाधान अच्छे हैं, लेकिन जब आपके पास Google द्वारा जारी किए गए PubSubHubbub की तरह कुछ है तो अधिक प्रासंगिक नहीं है। यह किसी दिए गए फ़ीड के लिए प्रकाशक या ग्राहक होने के लिए बहुत आसान बनाता है। http://code.google.com/p/pubsubhubbub/

+4

PubSubHubbub धूमकेतु नहीं है। –

संबंधित मुद्दे