Sto cercando di capire come funziona la funzionalità message-bus utilizzata da Discourse per rimanere online con nuovi messaggi ed eventi. Nello specifico sono interessato a come viene utilizzata nel recente plugin di chat di Discourse.
Facendo un po’ di reverse engineering vedo che quando entro in una chatroom, ogni volta che il message-bus effettua un poll tramite “https://mysite.com/message-bus/client_id/poll”, le intestazioni della richiesta vengono duplicate, ad esempio:
Quindi questo funziona sul mio sito, ma quando provo a effettuare una richiesta da un sito esterno o da un’app mobile, ottengo l’errore:
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.
Quindi, se ho capito bene, il message_bus imposta i propri “Headers”? C’è un modo per utilizzare gli “Headers” già impostati dalla configurazione di Discourse, almeno quelli con comportamento CORS?
Cerco di evitare “headers” duplicati quando uso message_bus. Questo mi permette di effettuare richieste al di fuori del sito del forum.
Temo che questo sia troppo personalizzato perché io possa fornire consigli qui, apprezzo totalmente che più persone utilizzino il message bus, ma dovrai eseguire il debug delle cose qui.