أنا أقوم بإنشاء تطبيق جوال يستخدم Discourse للحصول على البيانات ونشرها. في الوقت الحالي، أقوم بإجراء طلب كل 30 ثانية لمعرفة ما إذا كانت هناك مشاركات جديدة في موضوع ما. يبدو أن هذا قد يضر بمنتدانا عن طريق التسبب في هجوم حجب الخدمة (d-dosing) عن طريق الخطأ.
لقد كنت أبحث عن حل جيد باستخدام WebSockets في Flutter، ولكن لم أجد شيئًا بعد. بالنسبة لـ Discourse، صادفت MessageBus، والذي لديه وثائق مربكة.
ومع ذلك، لدينا MessageBus معد على منتدانا كما هو موضح في طلب الاستطلاع هذا:
لذا سؤالي هو ما إذا كان لدى أي شخص أي فكرة عن كيفية حل هذه المشكلة ولديه أي خبرة في استخدام MessageBus أو Flutter Websockets.
ولكن من المحتمل أن يكون الحل الأبسط هو استخدام ميزة WebHooks الخاصة بـ Discourse. بهذه الطريقة، يمكن لـ Discourse إجراء طلب ويب إلى نقطة النهاية الخاصة بك كلما كان هناك موضوع/منشور جديد. يمكنك العثور على مزيد من المعلومات هنا:
لا أرى كيف يمكن أن تكون خطافات الويب (webhooks) مرتبطة أو مفيدة على الإطلاق لواجهة Flutter الأمامية.
يبدو أن ما يبحث عنه المؤلف الأصلي هو تطبيق Dart لعميل MessageBus… والذي قد يتطلب هندسة عكسية من كود جافاسكريبت هذا. قد يكون هناك بديل آخر وهو تشغيل كود جافاسكريبت داخل Dart، ثم تغليفه بروابط لترجمة من جافاسكريبت إلى Dart. يجب أن يكون النقل المباشر إلى Dart هو الأكثر أداءً بين هذين الخيارين.
يرجى تصحيحي إذا كنت مخطئًا. هذا ليس شيئًا تعمقت فيه، لكنني أعتقد أن فكرة واجهة Flutter الأمامية مثيرة للاهتمام.