عميل الدردشة القائم على الفلاش ليس قويًا بما فيه الكفاية؟ ما هي الطريقة الأخرى؟

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

  •  24-09-2019
  •  | 
  •  

سؤال

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

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

أي اقتراحات؟

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

المحلول

الشيء السيئ في الاقتراع هو ، يمكن أن يصبح باهظ الثمن بسرعة كبيرة.

لنفترض أن لديك 10000 مستخدم عبر الإنترنت ، والذين يرغبون في الحصول على تأخير لا يزيد عن ثانية واحدة. بعد ذلك ، سوف يصرخ الخادم الخاص بك مع 10000 طلب في الثانية.

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

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

بصرف النظر عن ذلك ، يمكنك استخدام APE أو SmartFox ، أو Red5 أو الكثير من الأشياء المختلفة لإنشاء خادم ترحيل ثابت ، أي خادم يحتوي على اتصالات دائمة لجميع العملاء وإعلامهم بأي تغييرات (مثل الرسائل الجديدة).

كما هو الحال دائمًا ، نصيحتي الشخصية هي الاستخدام هاكس. يمكنك استعمال ال دردشة البرنامج التعليمي للبدء. لدى Haxe منحنى تعليمي شديد الانحدار ، لكنني أعتقد أنه يستحق ذلك تمامًا. يسعدني أن ترك كل من Actionscript و PHP وراءه.

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

نصائح أخرى

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

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

عندما تكتب تعليقًا ، يمكن لعميلك إخطار هذا التطبيق مباشرة (عبر خدمة ويب) للتغيير ، ويمكن لهذا التطبيق مساعد قاعدة البيانات ...

يجب أن يقال على الرغم من أنني لست خبيرًا في برامج الدردشة - لم يشارك أبدًا في شخص واحد ...

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