أقوم حاليًا ببناء واجهة أمامية باستخدام React لخدمة Discourse من نوع headless.
أنا في طور تنفيذ عداد الإشعارات، المشابه لذلك الموجود فوق صورة الملف الشخصي للمستخدم هنا. أود تحديث هذا العداد في الوقت الفعلي تقريبًا باستخدام long polling عبر message_bus في Discourse.
لقد راجعت ملف message-bus.js، لكنه يبدو مطولًا جدًا وغير محدث للتطبيقات الحديثة. لا أرغب في إضافة jQuery وكائن عالمي عندما يجب أن ننفذ ذلك كجزء من تطبيق React.
أفضل طريقة هي استخدام مكتبة message-bus. حاليًا، تعتمد على JQuery، ولكن إذا رغبت في تقديم طلب سحب (pull request) لإزالة هذا الاعتماد، فإننا على يقين من أنه سيتم النظر فيه.
يُفترض استخدام Messagebus فقط داخل Discourse، وهو ليس حقًا “واجهة برمجة تطبيقات عامة”. أفضل مصدر للمعلومات سيكون ملفات جافا سكريبت في قاعدة الكود، والتي عثرت عليها بالفعل
ستحاول MessageBus أولاً استخدام jQuery، ثم ستعود إلى نسخة XMLHttpRequest عادية موجودة في ملف message-bus-ajax.js. يجب تحميل message-bus-ajax.js بعد message-bus.js لكي يتم استخدامها. يمكنك تجاوز هذا الخيار باستخدام دالة تنفذ طلب Ajax بطريقة أخرى
شكرًا لك @david، @sam، لم أقصد أن أشير إلى أن Discourse ليس تطبيقًا حديثًا - بل هو بالتأكيد كذلك. أعتقد أنني وجدت message-bus.js أولاً، وكنت مرتبكًا بشأن ما إذا كانت تمثل بالفعل أفضل الممارسات. إنها تعمل بشكل صحيح، لذا فلا مشكلة.