Я пытаюсь разобраться, как работает функция message-bus, используемая в Discourse для получения новых сообщений и событий в режиме онлайн. В частности, меня интересует, как она применяется в плагине Discourse Chat.
Проведя некоторое реверс-инжиниринг, я заметил, что при входе в чат-комнату каждый раз, когда message-bus выполняет опрос через “https://mysite.com/message-bus/client_id/poll”, заголовки запроса дублируются, например:
Это работает на моём сайте, но когда я пытаюсь сделать запрос с внешнего сайта или мобильного приложения, получаю ошибку:
Access to XMLHttpRequest at 'https://forum-dev.srepe.com/message-bus/f6e2303ff7704f608ef2b821fe210e90/poll'
from origin 'http://localhost:8100' has been blocked by CORS policy:
The 'Access-Control-Allow-Origin' header contains multiple values
'https://forum-dev.srepe.com, *', but only one is allowed.
Правильно ли я понимаю, что message_bus устанавливает свои собственные заголовки (Headers)? Существует ли способ использовать заголовки, уже настроенные в конфигурации Discourse, по крайней мере те, которые относятся к CORS?
Я стремлюсь избежать дублирования заголовков при использовании message_bus. Это позволит мне выполнять запросы за пределами сайта форума.
Боюсь, что это слишком индивидуально, чтобы я мог дать здесь совет. Я полностью поддерживаю использование шлюза сообщений, но вам придется самостоятельно разобраться с этим.