Message-bus يكرر ترويسات في دردشة Discourse

مرحباً يا رفاق

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

بناءً على ما وصفه @sam في https://meta.discourse.org/t/how-discourse-stays-online-message-bus-faye-long-polling/3238/7?u=jandres، أود دمج هذه الوظيفة مع الوظائف الموجودة بالفعل في تطبيقي المحمول.

بالقيام ببعض الهندسة العكسية، أرى أنه عندما أدخل إلى غرفة الدردشة، في كل مرة يقوم فيها ناقل الرسائل بإجراء استطلاع عبر “https://mysite.com/message-bus/client_id/poll”، يتم تكرار رؤوس الطلب على سبيل المثال:

لذلك يعمل هذا على موقعي، ولكن عندما أحاول إجراء طلب من موقع خارجي أو تطبيق جوال، أحصل على الخطأ:

تم حظر الوصول إلى XMLHttpRequest في 'https://forum-dev.srepe.com/message-bus/f6e2303ff7704f608ef2b821fe210e90/poll' من الأصل 'http://localhost:8100' بواسطة سياسة CORS: يحتوي رأس 'Access-Control-Allow-Origin' على قيم متعددة 'https://forum-dev.srepe.com, *'، ولكن يُسمح بقيمة واحدة فقط.

جميع المسارات الأخرى جيدة، ولكن عندما أحاول استخدام ناقل الرسائل يحدث هذا. أنا أستخدم المثال الذي تركه @sam في مستودع GitHub https://github.com/discourse/message_bus/tree/main/examples/chat كمصدر إلهام.

إذا كان بإمكانك تقديم توجيه أو مساعدة بسيطة في هذا الأمر، سأكون ممتنًا جدًا لك :pray:

شكراً جزيلاً لك

إعجاب واحد (1)

الإعدادات الرأسية مُعدة بالكامل هنا:

نأمل أن يجيب هذا على هذا؟

شكراً لردك السريع.

إذن، إذا فهمت بشكل صحيح، فإن message_bus يحدد “Headers” الخاصة به؟ هل هناك أي طريقة لاستخدام “Headers” التي تم تعيينها بالفعل بواسطة إعدادات Discourse، على الأقل تلك التي لها سلوك CORS؟

أبحث عن تجنب “Headers” المكررة عند استخدام message_bus. هذا يسمح لي بإجراء طلبات خارج موقع المنتدى.

أنت تبتعد كثيرًا عن إعداد شائع، اقرأ هذا الملف بعناية، يجب أن يحتوي على كل الإجابات

أنت على حق، لذا إذا كنت سأستخدم message_bus من خارج الموقع (مثل تطبيق PWA أو تطبيق هجين للجوال) فماذا تنصحني؟

أود استخدام message_bus كعميل خارجي باستخدام كمثال لمكتبة JavaScript التي قمت بإنشائها بالفعل. https://github.com/discourse/message_bus/tree/main?tab=readme-ov-file#javascript-client

أتساءل كيف تمكن هذا المستخدم من تحقيق ذلك.

لقد نشر مقطع فيديو على يوتيوب هنا يوضح تقدمه على أجهزة متعددة.

يجب أن تكون هناك طريقة لاستخدام gem message_bus من خارج موقع discourse.

شكراً جزيلاً إذا كان بإمكانك فقط إرشادي قليلاً، أو إعطائي بعض الأفكار.

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