Le bus de messages ignore le réglage DISCOURSE_LONG_POLLING_BASE_URL et utilise toujours "/"

Description du problème

J’ai récemment configuré un nouveau service CDN et configuré DISCOURSE_LONG_POLLING_BASE_URL dans app.yml, pour séparer le service de long polling du serveur d’origine.

Mais le bus de messages continue de faire des requêtes à “/” au lieu de respecter l’URL de base de long polling configurée.

Étapes pour reproduire

  1. Configurez DISCOURSE_LONG_POLLING_BASE_URL dans app.yml avec une URL CDN personnalisée.
  2. Reconstruisez et démarrez Discourse.
  3. Vérifiez que le frontend lit correctement la valeur de la variable d’environnement.
  4. Observez les requêtes réseau du bus de messages dans les outils de développement du navigateur.

Quelques captures d’écran

Le frontend lit correctement le paramètre :

Comportement attendu

Le bus de messages doit utiliser le paramètre long_polling_base_url configuré pour ses requêtes lorsque le paramètre est fourni.

Comportement actuel

Le bus de messages continue de faire des requêtes à “/” quelle que soit la configuration de DISCOURSE_LONG_POLLING_BASE_URL.

Cause racine

Le problème se situe dans app/assets/javascripts/discourse/app/instance-initializers/message-bus.js.

La logique de définition de messageBus.baseUrl ne gérait pas correctement le paramètre long_polling_base_url du site, ce qui le faisait revenir à “/” même lorsqu’une URL personnalisée était configurée.

Correction

J’ai identifié et corrigé le problème dans l’initialiseur d’instance du bus de messages. La correction garantit que lorsque siteSettings.long_polling_base_url est défini et n’est pas égal à “/”, il configure correctement l’URL de base du bus de messages.

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

Vérification

  • Confirmation que le frontend lit correctement la variable d’environnement.
  • Correction de la logique d’initialisation du bus de messages pour respecter le paramètre.
  • Toutes les vérifications de formatage sont réussies.
  • Le bus de messages utilise désormais correctement l’URL de base de long polling configurée.

Ce bug affecte toute installation Discourse utilisant une configuration CDN personnalisée avec le long polling, empêchant une utilisation correcte du CDN pour les requêtes du bus de messages.


Merci à @David_Ghost, rendez-vous sur notre discussion ici :

1 « J'aime »

Je vois, belle correction, merci de votre contribution !

2 « J'aime »