Na documentação afirma, que io.origins()
recebe um array de strings/origins (veja o exemplo https://socket.io/docs/server-api/#server-origins-value), quando na verdade ele faz não. Ele só funciona ao fornecer uma string em vez de uma matriz.
Contexto
io.origins(['http://localhost:3000'])
e, em seguida, conectar de localhost:3000
não funciona.
Só funciona ao definir io.origins('http://localhost:3000')
Eu acho que o protocolo não deve ser incluído:
io.origins(['localhost:3000', 'localhost:3001']);
// or
io.origins('localhost:3000');
Funciona com protocolo quando fornecido como string, não quando fornecido em array 😄
Mas obrigado pelo esclarecimento!
Eu acho que é implementado com um indexOf
, daí o comportamento estranho.
Vou adicionar uma nota na documentação.
Acabei de me deparar com o mesmo problema - uma matriz com o protocolo na URL, por exemplo, io.origins([https://subdomain.domain.ee:*])
não funciona, enquanto io.origins([subdomain.domain.ee:*])
funciona.
Enquanto o exemplo na documentação inclui https://
no exemplo de array: io.origins(['https://foo.example.com:443']);
.
Olhando para este commit , parece que os documentos foram alterados para incluir esse exemplo, mas isso ainda aconteceu comigo?
Eu estava usando [https://subdomain.domain.ee:*]
como URL, o que não funcionou, nem com http://
(embora no meu caso deva ser acessível apenas via https://
qualquer maneira). Depois que removi o protocolo, ele começou a funcionar.
Eu pensei em relatar isso aqui apenas no caso. Eu estava possivelmente faltando alguma coisa?
Comentários muito úteis
Eu acho que o protocolo não deve ser incluído: