Socket.io-client: Conexão do cliente Socket.io por meio do AWS Api Gateway

Criado em 12 jun. 2020  ·  4Comentários  ·  Fonte: socketio/socket.io-client

Olá. Estou tentando criar uma conexão como esta: socket.io-client -> AWS Gateway API.
Ao tentar se conectar do cliente socket.io a uma API do AWS Gateway, a conexão não pode ser estabelecida.
Ele bloqueia com um status '101 comutação de protocolos' por alguns segundos, em seguida, lança o evento 'desconectado' e tenta restabelecer a conexão, e o processo se repete infinitamente.
Isso não acontece com WebSockets nativos ou biblioteca 'ws', tudo se conecta como deveria.
Acho que o problema tem a ver com como os lados do cliente e servidor socket.io interagem entre si, trocando certas mensagens que podem não ser geradas no lado AWS das coisas.
Portanto, a minha pergunta é: é mesmo possível estabelecer uma conexão como esta sem usar proxies:
socket.io-client -> AWS Api Gateway -> socket.io(node.js) ,
ou sempre tem que ser Socket.io-client -> socket.io(node.js) ?

A documentação do Amazon AWS foi usada para configurar o gateway: https://aws.amazon.com/blogs/compute/announcing-websocket-apis-in-amazon-api-gateway/
Ele usa as rotas standart $ connect, $ disconnect e $ default, mas em vez de lambda seu backend nodejs. O problema, porém, é apenas do lado do cliente.

question

Comentários muito úteis

@Sairyss existe uma atualização sobre isso?

@JerryLeeCS Acabei usando WebSockets nativos no lado do cliente e $ connect, $ disconnect e $ default routes no lado do back-end. Não encontrei nenhuma solução para fazer funcionar com Socket.io. Parece que as conexões Socket.io do front-end não são suportadas pela API do AWS Gateway, ela apenas se recusa a se conectar.

Todos 4 comentários

@Sairyss existe uma atualização sobre isso?

@Sairyss existe uma atualização sobre isso?

@JerryLeeCS Acabei usando WebSockets nativos no lado do cliente e $ connect, $ disconnect e $ default routes no lado do back-end. Não encontrei nenhuma solução para fazer funcionar com Socket.io. Parece que as conexões Socket.io do front-end não são suportadas pela API do AWS Gateway, ela apenas se recusa a se conectar.

Parece que é possível: https://stackoverflow.com/a/56364967

@darrachequesne Se eu li esse link / post corretamente ele está usando um servidor EC2 executando o servidor SocketIO? Não está um pouco claro. Estou no mesmo barco - ws funciona bem, mas não soquete io - nenhuma conexão. Usando o servidor websocket padrão fornecido pelo gateway aws api (por meio de serverless).

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

gtk2k picture gtk2k  ·  3Comentários

catamphetamine picture catamphetamine  ·  3Comentários

zappfinger picture zappfinger  ·  5Comentários

ledmago picture ledmago  ·  3Comentários

ahadcove picture ahadcove  ·  7Comentários