سؤال

أنا أقوم ببناء تطبيق ويب لديه إطعام في الوقت الحقيقي (مماثلة ل Newsfeed في Facebook) الذي أريد التحديث عبر آلية الاقتراع الطويلة. أفهم أنه مع بيثون، اختياراتي إلى حد كبير إما استخدامها بشكل مكتومة (بناء من مثال WSGI المذنب الخاص بها) أو CometD + الملتوية. لسوء الحظ، هناك بعض الوثائق القليل جدا فيما يتعلق بهذه الخيارات ولا يمكنني العثور على معلومات جيدة عبر الإنترنت حول مستخدمي الإنتاج لمستخدمي المذنب على Python.

هل قام أي شخص بتنفيذ المذنب بنجاح على Python في نظام الإنتاج؟ كيف ذهبت في القيام بذلك وأين يمكنني العثور على موارد لتنفيذ بلدي؟

هل كانت مفيدة؟

المحلول

أوصي يجب أن تستخدم streamhub comet server. - استخدامها من قبل الكثير من الناس - أنا شخصيا أستخدمها مع موقعين من مواقع Django التي أجريها. ستحتاج إلى كتابة جزء صغير من جافا للتعامل مع البث - فعلت هذا باستخدام جيثون. وبعد رمز الواجهة الأمامية هو بعض JavaScript بسيطة حقيقية A LA:

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

الوثائق جيدة جدا - لقد تناولت مشاكل مماثلة أثناء محاولة البدء في مستندات Sparse Cometd et al. لبدء ابدأ قرأته البدء مع المذنب و streamhub, ، قم بتنزيل ونرى كيف تعمل بعض الأمثلة والمرجع على مستندات API إذا كنت بحاجة إلى:

نصائح أخرى

orbited. يبدو كحل لطيف. لم تحاول ذلك.


تحديث: لقد تغيرت الأمور في آخر 2.5 سنة.

لدينا الآن أجهزة الإنترنت في جميع المتصفحات الرئيسية، باستثناء IE (بشكل طبيعي) واثنين من التجريدات الجيدة للغاية حولها، والتي توفر العديد من طرق محاكاة التواصل في الوقت الفعلي.

فيما يلي مثال كامل المواصفات على الجمع بين Django، Orbited، والملتوية لإنشاء تطبيق في الوقت الحقيقي (Comet) http://github.com/clemesha/hotdot. باستخدام بيثون.

لقد فعلت الكثير من أبس باستخدام الملتوية للأشياء من هذا القبيل، معظمها متوفرة على بلدي جيثب الحساب.

معظم جانب العميل، ولكن سكب هو خادم كتبته للقيام بشيء حقيقي في Pubsub رخيصة في الوقت الحقيقي. يتم ذلك بشكل أفقي إلى حد ما عن القراءات من خلال السماح بنسخ متماثل دفق بسيط. الكتب مختلفة قليلا عندما تلتصق بال http عادي، لكنني دفعت مبلغا لائقا من خلاله من أجل تجريبي.

خلاف ذلك، لديك BOSH الكامل التي تدعم معظم خوادم XMPP وسوف تسمح لك بفك ضغط توزيع الرسائل من واجهة الويب.

أنا لم أفعل ذلك، لكن هذا الشخص لديه ويكتب مقالا جيدا حول هذا الموضوع، مع أمثلة Django ومؤشرات (التي لم أتحقق منها) بأطر أخرى.

الحلول المدارية والحيلات لطيفة، ولكنها ليست ذات صلة أطول عندما يكون لديك شيء مثل pubsubhubbub أن جوجل صدر. هذا يجعل من السهل جدا أن يكون الناشر أو المشترك في تغذية معينة. http://code.google.com/p/pubsubhubbub/

فيما يلي مثال يقوم بالاقتراع الطويل مع Gevent و Django.

ويستخدم ذلك فنجر - وظيفة تبديل المكدس من مكشوف التعبئة كملحق cpython.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top