2015-11-16 10 views
7

Ho un'applicazione con sottodomini e vorrei essere in grado di connettersi a un WebSocket di tutti i sottodomini quando aggiungo un sottodominio per cable/config.ruRails alias actioncable richiesta origini

ActionCable.server.config.allowed_request_origins = ["domain.com", 
"sub1.domain.com", "sub1.domain.com"] 

funziona male, ma come posso impostare alias per tutti i sottodomini somethink come questo:

"[*.domain.com]" 

Char "*" dosn't lavoro.

+0

Solo per curiosità, si usa ActionCable su livello di produzione? O ci stai solo giocando? –

risposta

0

[RISPOSTA obsoleto]

sembra che qualcosa di simile non è ancora implementata dalla implementazione corrente di ActionCable sul suo ufficiale repo su GitHub.

7

Actioncable now supports regular expressions

Uso indicato di seguito:

azione cavo accetterà solo le richieste provenienti da origini specificate, che vengono passati alla configurazione del server come un array. Le origini possono essere istanze di stringhe o espressioni regolari, rispetto alle quali verrà eseguito un controllo per la corrispondenza .

ActionCable.server.config.allowed_request_origins = ['http://rubyonrails.com', /http:\/\/ruby.*/]

1

È possibile utilizzare espressioni regolari per questo caso. Nei file ambienti (di produzione e sviluppo) Utilizzare questo:.

config.action_cable.allowed_request_origins = [/(?:^(http|https):\/\/)?(?:([^.]+)\.)?#{ENV["domain"]}/]

Come l'ENV [ "dominio"] il dominio che l'applicazione viene eseguita in