El bus de mensajes ignora la configuración DISCOURSE_LONG_POLLING_BASE_URL y siempre usa "/"

Descripción del problema

Recientemente estaba configurando un nuevo servicio CDN y configurando DISCOURSE_LONG_POLLING_BASE_URL en app.yml, para separar el servicio de sondeo largo del servidor original.

Pero el bus de mensajes continúa realizando solicitudes a “/” en lugar de respetar la URL base de sondeo largo configurada.

Pasos para reproducir

  1. Configure DISCOURSE_LONG_POLLING_BASE_URL en app.yml con una URL CDN personalizada.
  2. Reconstruya e inicie Discourse.
  3. Verifique que el frontend lea correctamente el valor de la variable de entorno.
  4. Observe las solicitudes de red del bus de mensajes en las herramientas de desarrollador del navegador.

Algunas capturas de pantalla

El frontend lee correctamente la configuración:

Comportamiento esperado

El bus de mensajes debería usar la configuración long_polling_base_url configurada para sus solicitudes cuando se proporciona la configuración.

Comportamiento real

El bus de mensajes continúa realizando solicitudes a “/” independientemente de la configuración de DISCOURSE_LONG_POLLING_BASE_URL.

Causa raíz

El problema está en app/assets/javascripts/discourse/app/instance-initializers/message-bus.js.

La lógica para establecer messageBus.baseUrl no manejaba correctamente la configuración del sitio long_polling_base_url, lo que provocaba que se estableciera por defecto en “/” incluso cuando se configuraba una URL personalizada.

Solución

He identificado y solucionado el problema en el inicializador de instancias del bus de mensajes. La solución garantiza que cuando siteSettings.long_polling_base_url esté configurado y no sea igual a “/”, configure correctamente la URL base del bus de mensajes.

Pull Request: FIX: Respect long_polling_base_url setting for message bus configuration by chenglu · Pull Request #34477 · discourse/discourse · GitHub

Verificación

  • Se confirmó que el frontend lee correctamente la variable de entorno.
  • Se corrigió la lógica de inicialización del bus de mensajes para respetar la configuración.
  • Todas las verificaciones de formato pasan.
  • El bus de mensajes ahora utiliza correctamente la URL base de sondeo largo configurada.

Este error afecta a cualquier instalación de Discourse que utilice una configuración CDN personalizada con sondeo largo, lo que impide la utilización adecuada de la CDN para las solicitudes del bus de mensajes.


Gracias a @David_Ghost, diríjase a nuestra discusión aquí:

1 me gusta

Entendido, buena corrección, ¡gracias por contribuirla!

2 Me gusta