كيف يمكنني إنشاء خادم دردشة غير مدفوع من قبل الاقتراع؟

StackOverflow https://stackoverflow.com/questions/1173032

سؤال

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

نظرا لأن العميل يعمل على منصة متنقلة (iPhone)، فقد كنت أبحث عن طرق للتخلص من الاقتراع، والتي تستنزف بسرعة البطارية بسرعة. لقد قرأت أنه من الممكن إبقاء اتصال HTTP مفتوح إلى أجل غير مسمى، لكن لم يفهم كيفية استخدام هذه التقنية في الممارسة العملية. أتساءل أيضا عما إذا كانت هذه الاتصالات مستقرة بما يكفي لاستخدامها في إعداد المحمول.

سيكون السيناريو المثالي هو أن الخادم يرسل فقط البيانات إلى العملاء عند حدوث حدث يؤثر عليهم (مثل نظير نشر رسالة أو الخروج من الخط).

هل من المستحسن أن نحاول إنجاز هذا على HTTP، أو هل يجب علي كتابة بروتوكول الخاص بي عبر TCP؟ ما مدى صعوبة تخصيص XMPP على حاجتي (يحتوي خادم الدردشة على بعض الميزات المتخصصة التي يجب علي التنفيذ بسهولة).

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

المحلول

ماذا عن دفع التكنولوجيا؟ يرى http://en.wikipedia.org/wiki/comet_(programming)

نصائح أخرى

أعتقد أنك تصف XMPP على بوش.

http://xmpp.org/extensions/xep-0206.html.

لقد استخدمت طريقة ربط HTTP هذه بين خادم الدردشة وعميل JavaScript على الأجهزة غير المحمولة. عملت بشكل جيد معي.

قد ترغب في التحقق هذا المشروع والتي تستخدم مجموعة متنوعة من التقنيات بما في ذلك المذنب. تفاصيل الإصدار هنا, ، إليك مقتطف من تلك الصفحة

من دواعي سروري المتميز أن أكون قادرا على الإعلان عن أول عرض عام لمشروع أعمل فيه في وقت فراغي في الشهر الماضي أو اثنين، وهو تطبيق دردشة مدرد على شبكة الإنترنت جديدة.

يجمع هذا المشروع الكثير من التقنيات الجديدة التي يجب تطويرها لجعل هذا ممكنا وقابلا للتطوير والفعال.

تم بالفعل إصدار بعض الأدوات الأساسية لجعل هذا المصفاة التي أعتبرها "مستقرة بما فيه الكفاية"، مثل مكتبة الخفي المقبس PHPكتبت لتكون قادرة على التعامل مع المئات حتى عدة آلاف من اتصالات HTTP "المذنب"، وعلى قدم المساواة من اتصالات عميل IRC.

لقد وجدت هذه المقالة نفسي، الذي يصف التقنية التالية (التي أشرت إليها في السؤال):

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

أعتقد أن هذا مستحيل تقريبا وخطير. يعمل الإنترنت عديمي الجنسية ومعنى غير مناسب أن الاتصال بين العميل والخادم يتم التعامل معه دائما غير موثوق به. وهذا ليس للمتعة.

من خلال محاولة الحصول على اتصال جديد، تقوم بإدخال مشكلات جديدة. خاصة من تطبيق 3G. ماذا لو فواصل الاتصال؟ ليس لديك أي سيطرة على الخادم ولا يمكن أن تدفع.

أعتقد أنه سيكون من الأسهل إرسال الرسائل النصية القصيرة / الرسائل النصية ولديه تطبيق يعالج ذلك.

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