Socket.io-client: Incapaz de conectar e reconectar ao reagir nativo

Criado em 4 mar. 2018  ·  13Comentários  ·  Fonte: socketio/socket.io-client

Eu usei essa lib por um ano e está tudo indo bem.
Comecei a usar RN 0,45 e 0,48 e depois 0,53.0. Tudo é perfeito.

Até eu atualizar para reagir 0.53.3 nativo, e esse problema aparecer.
este é o erro que eu recebi
{"type":"TransportError","description":{"line":"76","collumn":"7944","sourceURL":"index.android.bundle"}}
às vezes eu tenho "tempo limite"

Não mudei nenhum código, não mudei nenhuma dependência.
O que eu fiz apenas:

  1. Excluindo minha pasta node_modules
  2. No package.json eu mudo o RN e o número da versão react.
  3. Eu executo 'NPM install'

Achei que fosse o problema nativo do React, então voltei para a versão de pré-visualização em que usei 0.53.0. Mas esse problema ainda existe. Eu rolo de volta para 0,48, o problema ainda está lá. e assim por diante.

Eu uso socket.io-client 2.0.3 (eu tentei 2.0.4 mas não ajudo)

  • [x] relatar um bug
  • [] solicitar um recurso

Configurar

  • SO: Windows 10 64 bits
  • navegador: React Native
  • versão socket.io: 2.0.3

Eu não tenho idéia do que está acontecendo.
Espero que alguém ajude. Obrigado

Comentários muito úteis

Estou tendo problemas para conectar o websocket (socket.io-client, trnasport: ['websocket']) no iOS com o servidor web.
Curiosamente, funciona quando ligo "Debug JS Remotely" no dispositivo.
Isso pode ser um problema com a versão react-native no iOS. Apenas curiosidade se alguém está enfrentando o mesmo problema.

Todos 13 comentários

+1

Resolvi isso adicionando a opção ' transports': ['websocket'],

  this.socket = openSocket(socketUrl,{
          'reconnection': true,
          'reconnectionDelay': 500,
      'reconnectionAttempts': Infinity, 
      'transports': ['websocket'],            
      });

Mas essa opção não é necessária, estou certo?
Portanto, mantenho esse problema em aberto porque ele será interrompido quando eu omitir essa opção.

Tive esse problema depois de adicionar o expresso ao servidor e adicionar algumas rotas
e quando eu adicionei
'transports': ['websocket'],
funciona bem, mas desconecta depois de um tempo e
PS: desconectar enquanto estou trabalhando com o aplicativo, não no backround ou em outra coisa.

Você poderia fornecer uma maneira de reproduzir? (Eu tentei de brincadeira sem sorte: https://github.com/darrachequesne/jest/commits/test/socket.io)

Definir transportes para websocket também resolveu meu problema, mas é claro que desativa a pesquisa de http, o que é lamentável. Passos para reproduzir:

  1. Instale o soquete. [email protected] em um projeto
  2. Certifique-se de que um servidor de nó está executando [email protected] e habilite o registro de depuração
    Esperado : a conexão a ser estabelecida (simulador ios se conecta com sucesso)
    Real : socket io emite um connect_error no cliente com um código de 'erro de análise'. Após a inspeção, o xhr.response fornecido é uma string vazia que o socket io interpreta como um erro de análise. A mensagem que falha na análise parece ser a mensagem 'pong' do servidor socket io.

Eu tenho o mesmo problema no iOS, a solução temporária de adicionar a opção 'transports': ['websocket'] também funcionou para mim.

Configuração:

  • socket.io 2.1.1
  • reagir 16.3.2
  • reagente nativo 0,52,0
  • iOS 11.2

Estou tentando conectar socket.io no meu android nativo react. no entanto, ele não está se conectando. Tentei alguns tutoriais e o iOS está funcionando bem, mas o Android não. Eu tentei 'transports':['websocket'] mas ainda não está funcionando :( .. Alguma sugestão, ideia ou código de amostra?

Meu back-end é Nodejs e também usou socket.io. Obrigado!

Estou tentando conectar socket.io no meu android nativo react. no entanto, ele não está se conectando. Tentei alguns tutoriais e o iOS está funcionando bem, mas o Android não. Eu tentei 'transports':['websocket'] mas ainda não está funcionando :( .. Alguma sugestão, ideia ou código de amostra?

Meu back-end é Nodejs e também usou socket.io. Obrigado!
Você encontrou alguma solução para isso? Eu tenho o mesmo problema no react-native no Android.

o mesmo problema

olá pessoal estou com um problema no socket

mostra o tempo limite quando eu verifico

socket.on ('connect_error', (err) => {
console.log ('erro123', err)

aqui está meu código

para reagir ao lado nativo

importar io de 'socket.io-client';
var socket = io.connect ('http: // localhost: 8888', {transports: ['websocket'], upgrade: false});
socket.on ('notícias', função (dados) {
console.log (dados);
socket.emit ('meu outro evento', {meu: 'dados'});
});

   socket.on('connect_error', (err) => {
    console.log('error123',err)
  });

lado do servidor:

var app = require ('express') ();
var server = require ('http'). Server (app);
var io = require ('socket.io') (servidor);

server.listen (8888);
// AVISO: app.listen (80) NÃO funcionará aqui!

app.get ('/', função (req, res) {
res.sendFile (__ dirname + '/index.html');
});

io.on ('conexão', função (soquete) {
socket.emit ('news', {hello: 'world'});
socket.on ('meu outro evento', função (dados) {
console.log (dados);
});
});

index.html





WebScockets 101

Já estou em estoque preciso de ajuda

Até eu tenho o problema de conectar o socket-io no android. O RN é capaz de se conectar como o cliente, no entanto, o mesmo para o aplicativo web react, mas não o app móvel react. Por favor, sugira a solução.

Tente fazer o downgrade do socket.io-client para 1.7.2, funciona para mim.

Estou tendo problemas para conectar o websocket (socket.io-client, trnasport: ['websocket']) no iOS com o servidor web.
Curiosamente, funciona quando ligo "Debug JS Remotely" no dispositivo.
Isso pode ser um problema com a versão react-native no iOS. Apenas curiosidade se alguém está enfrentando o mesmo problema.

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