Socket.io-client: Não é possível conectar no React-Native (somente no modo de depuração)

Criado em 3 jan. 2019  ·  19Comentários  ·  Fonte: socketio/socket.io-client

### Você quer:

  • [x] reportar um _bug_
  • [ ] solicite um _recurso_

### Comportamento atual
Não consigo conectar via soquete io ao meu servidor, ele expira.

### Etapas para reproduzir (se o comportamento atual for um bug)
Em react-native:

``` js
importar io de 'socket.io-client';

const BACKEND = 'url do meu servidor socketio'

const sock = io(BACKEND, { transports: ['websocket'], forceNew: true });
sock.on('conectado', () = {
depurador;
})
```

Os logs de depuração se parecem com:

Não há nada apenas um tempo limite acionado

### Comportamento esperado
Espero poder me conectar ao meu servidor socketio, da mesma forma que consigo em um navegador da web.

### Configurar

  • SO: Android 8.0
  • navegador: React-native
  • versão do socket.io: 2.1.1 (mas tentei versões diferentes com o mesmo resultado)

Comentários muito úteis

Enfrentando o mesmo problema. Funciona bem quando o modo de depuração está ativado, mas não funciona quando o modo de depuração está desativado ou o apk é criado com o modo de lançamento.

Versions:
"react": "16.8.2",
"react-native": "0.58.4",
"socket.io-client": "^2.2.0"

Todos 19 comentários

Estou reabrindo este assunto, este é um pouco diferente.

Tentei instalar o soquete io em uma nova instalação nativa de reação 0.57.8 e estou enfrentando esse problema novamente.

Enfrentando o mesmo problema. Não funciona na versão RN 0.57.3. Funciona bem quando se conecta ao servidor local. Mas não está se conectando ao servidor back-end principal.

Reagir Nativo: 0,57,8
Reagir: 16.6.3
socket.io-client: 2.0.4

Isso funcionou para mim. Também precisa alterar a versão do socketio js no lado do servidor para 2.0.4

estou enfrentando o mesmo problema

O problema de @jr-k persiste após o hack de @anooj1483 de acordo com https://github.com/socketio/socket.io-client/issues/1245#issuecomment -451285245 em #1245
É o mesmo para mim

Enfrentando o mesmo problema. Funciona bem quando o modo de depuração está ativado, mas não funciona quando o modo de depuração está desativado ou o apk é criado com o modo de lançamento.

Versions:
"react": "16.8.2",
"react-native": "0.58.4",
"socket.io-client": "^2.2.0"

Mesmo problema que todos os outros. Funciona perfeitamente se estiver depurando.
Reagir versões do aplicativo nativo:
"reagir": "16.5.0",
"react-native": "^0.58.4",
"socket.io-client": "^2.1.1"

Versão do servidor:
"socket.io": "2.0.4"

socket.io-client: 2.0.4 funcionou para mim.

Estou recebendo erro ao usar 2.0.4 + ReactNative

TypeError: undefined não é um objeto (avaliando 'n.protocol')

image

CORRIGIDO para mim quando eu estava adicionando host:port como próximo no modo de depuração:

const socket = io(" //domain.com:port ", opts); // isso funciona apenas no modo de depuração

não funcionou no modo NO debug, tive que adicionar o protocolo:

const socket = io(" http://domain.com:port ", opts);

Eu tenho o mesmo problema
react-native : 0.57.8 ,
socket-io-client : 2.2.0
só funciona quando a depuração está habilitada

alguém já encontrou uma correção para isso? eu tentei várias versões diferentes do pacote sem sorte

existem muitas causas para este erro/bug, o meu foi apenas um de muitos.

tente a última versão do github, assim, resolveu meus problemas com o RN android:

npm i socketio/engine.io-client#3.3.2 -S

Felicidades

CORRIGIDO para mim quando eu estava adicionando host:port como próximo no modo de depuração:

const socket = io(" //domain.com:port ", opts); // isso funciona apenas no modo de depuração

não funcionou no modo NO debug, tive que adicionar o protocolo:

const socket = io(" http://domain.com:port ", opts);

funciona no socket.io 2.1.1 e react-native 0.59.8. te amo @ningacoding 👍 👍

Olá @autotrof ,
Eu tentei com react-native 0.59.8 e socket.io, mas não pode se conectar na versão build.
Estou usando ip e porta para conectar,
Você pode por favor me ajudar?

Alguém ainda não conseguiu resolver?
No meu caso

react-native : 0.61.5
socket.io-client: 2.3.0 (I tried another version, 2.1.1, 2.0.1, 2.1.0)

Da mesma forma, apenas no modo de depuração funcionou :(

Resolvi este problema mude console.dir() para console.log()
A função console.dir() não é compatível com o modo de lançamento 😃😃

tente isso no android funcionou para mim

android:name= ".MainApplication"
android:label= "@string/app_name"
android:icon= "@mipmap/ic_launcher"
android:roundIcon= "@mipmap/ic_launcher_round"
android:allowBackup= "falso"
android:usesCleartextTraffic= "true" <-- adicione isto

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