Message-bus está duplicando encabezados en el chat de Discourse

Hola chicos

Estoy tratando de entender cómo funciona la función de bus de mensajes que utiliza Discourse para mantenerse en línea con nuevos mensajes y eventos. Específicamente, me interesa cómo se utiliza en el reciente plugin de chat de Discourse.

Basándome en lo que @sam describió en https://meta.discourse.org/t/how-discourse-stays-online-message-bus-faye-long-polling/3238/7?u=jandres, me gustaría integrar esta funcionalidad junto con las que ya existen, en mi aplicación móvil.

Haciendo algo de ingeniería inversa, veo que cuando entro a una sala de chat, cada vez que el bus de mensajes hace una consulta a través de “MISITIO.COM - For Sale”, las cabeceras de la solicitud se duplican, por ejemplo:

Eso funciona en mi sitio, pero cuando intento hacer una solicitud desde un sitio externo o una aplicación móvil, obtengo el error:

Acceso a XMLHttpRequest en 'https://forum-dev.srepe.com/message-bus/f6e2303ff7704f608ef2b821fe210e90/poll' desde el origen 'http://localhost:8100' ha sido bloqueado por la política de CORS: La cabecera 'Access-Control-Allow-Origin' contiene múltiples valores 'https://forum-dev.srepe.com, *', pero solo se permite uno.

Todas las demás rutas están bien, pero cuando intento usar el bus de mensajes, esto sucede. Estoy usando el ejemplo que @sam dejó en el repositorio de GitHub https://github.com/discourse/message_bus/tree/main/examples/chat como fuente de inspiración.

Si pueden darme una orientación o una pequeña ayuda con esto, estaré muy agradecido :pray:

Muchas gracias

1 me gusta

los encabezados están todos configurados aquí:

¿esperemos que eso responda a esto?

Gracias por tu rápida respuesta.

Entonces, si entiendo bien, ¿el message_bus establece sus propios “Headers”? ¿Hay alguna forma de utilizar los “Headers” ya establecidos por la configuración de Discourse, al menos aquellos con comportamiento CORS?

Busco evitar “headers” duplicados al usar message_bus. Esto me permite hacer solicitudes fuera del sitio del foro.

Te estás desviando bastante de una configuración común, revisa ese archivo cuidadosamente, debería tener todas las respuestas.

Tienes razón. Entonces, si usara el message_bus desde fuera del sitio (como en una PWA o una aplicación híbrida móvil), ¿qué me aconsejas?

Me gustaría usar el message_bus como un cliente externo utilizando, como ejemplo, la biblioteca de JavaScript que ya has creado. https://github.com/discourse/message_bus/tree/main?tab=readme-ov-file#javascript-client

Me pregunto cómo este usuario pudo hacerlo posible.

Publicó un video de YouTube aquí mostrando su progreso en múltiples dispositivos.

Debería haber una manera de usar la gema message_bus fuera del sitio de Discourse.

Muchas gracias si puedes guiarme un poco más o darme alguna idea.

Me temo que esto es demasiado personalizado para que pueda ofrecerle asesoramiento aquí, aprecio totalmente que más gente utilice el bus de mensajes, pero tendrá que depurar las cosas aquí.