A versão mais antiga do socket.io funciona bem, mas a versão mais recente mostra um erro CORS ao tentar conectar de frente para trás. Também adicionei middleware CORS ao servidor, mas não está funcionando. Mas quando eu volto para a versão mais antiga do socket, ele está funcionando bem.
Olá, acredito que seja porque a documentação não reflete a alteração feita com a versão 3.0.
Consulte este link https://socket.io/docs/migrating-from-2-x-to-3-0/ , seção Tratamento de CORS.
Não vou mentir, é meio chato. Comecei a jogar com o socket.io hoje e agora há bloqueios de estradas. Eu faria o downgrade para 2.x, mas parece que a documentação não tem controle de versão.
Oi! Desculpe por isso, a documentação está em processo de atualização para a v3.
Eu adicionei uma seção sobre CORS aqui: https://socket.io/docs/v3/handling-cors/
Você poderia verificar se isso está claro o suficiente?
@darrachequesne obrigado, está resolvido!
Isso pode causar problemas para pessoas com projetos glitch.me. Ao atualizar o para v3, os projetos glitch.me começam a responder com o erro postado por saifulshihab. No entanto, parece que o CORS é contra o glitch.me e os TOS da AWS e terá um projeto removido. Existe uma maneira de executar o framework v3 sem incluir CORS?
Não entendo totalmente o que é CORS e por que é um problema. Estou apenas tentando montar um plano.
Olá @quindo - só queria esclarecer que habilitar o CORS não é contra os TOS do Glitch. Alguns usuários estavam usando pacotes npm específicos como CORS-anywhere por motivos maliciosos e isso vai contra o nosso TOS.
para quem enfrenta o problema: -
// server-side
const io = require("socket.io")(httpServer, {
cors: {
origin: "https://example.com",
methods: ["GET", "POST"],
allowedHeaders: ["my-custom-header"],
credentials: true
}
});
// client-side
const io = require("socket.io-client");
const socket = io("https://api.example.com", {
withCredentials: true,
extraHeaders: {
"my-custom-header": "abcd"
}
});
Eu acho que isso agora pode ser fechado. Reabra se necessário.
Comentários muito úteis
Oi! Desculpe por isso, a documentação está em processo de atualização para a v3.
Eu adicionei uma seção sobre CORS aqui: https://socket.io/docs/v3/handling-cors/
Você poderia verificar se isso está claro o suficiente?