Barramento de mensagens ignora a configuração DISCOURSE_LONG_POLLING_BASE_URL e sempre usa "/"

Descrição do Problema

Recentemente, estava configurando um novo serviço de CDN e o DISCOURSE_LONG_POLLING_BASE_URL no app.yml, para separar o serviço de long polling do servidor original.

No entanto, o message bus continua a fazer requisições para “/” em vez de respeitar o URL base de long polling configurado.

Passos para Reproduzir

  1. Configure DISCOURSE_LONG_POLLING_BASE_URL no app.yml com um URL de CDN personalizado.
  2. Recompile e inicie o Discourse.
  3. Verifique se o frontend lê corretamente o valor da variável de ambiente.
  4. Observe as requisições de rede do message bus nas ferramentas de desenvolvedor do navegador.

Algumas capturas de tela

Frontend lendo corretamente a configuração:

Comportamento Esperado

O message bus deve usar a configuração long_polling_base_url configurada para suas requisições quando a configuração for fornecida.

Comportamento Atual

O message bus continua a fazer requisições para “/” independentemente da configuração DISCOURSE_LONG_POLLING_BASE_URL.

Causa Raiz

O problema está em app/assets/javascripts/discourse/app/instance-initializers/message-bus.js.

A lógica para definir messageBus.baseUrl não estava tratando corretamente a configuração do site long_polling_base_url, fazendo com que ela voltasse para “/” mesmo quando um URL personalizado estava configurado.

Correção

Identifiquei e corrigi o problema no inicializador de instância do message bus. A correção garante que, quando siteSettings.long_polling_base_url estiver definido e não for igual a “/”, ele configure corretamente o URL base do message bus.

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

Verificação

  • Confirmei que o frontend lê corretamente a variável de ambiente.
  • Corrigi a lógica de inicialização do message bus para respeitar a configuração.
  • Todas as verificações de formatação foram aprovadas.
  • O message bus agora usa corretamente o URL de long polling configurado.

Este bug afeta qualquer instalação do Discourse que use uma configuração de CDN personalizada com long polling, impedindo a utilização adequada da CDN para requisições do message bus.


Obrigado a @David_Ghost, por favor, dirija-se à nossa discussão aqui:

1 curtida

Entendi, bom conserto, obrigado por contribuir!

2 curtidas