Socket.io-client: No se puede conectar y volver a conectar en react native

Creado en 4 mar. 2018  ·  13Comentarios  ·  Fuente: socketio/socket.io-client

Estuve usando esta biblioteca durante un año y todo va bien.
Empecé a usar RN 0.45 y 0.48, y luego 0.53.0. Todo es perfecto.

Hasta que actualizo para reaccionar nativo 0.53.3, y aparece este problema.
este es el error que tengo
{"type":"TransportError","description":{"line":"76","collumn":"7944","sourceURL":"index.android.bundle"}}
a veces tengo "tiempo de espera"

No cambié ningún código, no cambié ninguna dependencia.
Lo que hice solo:

  1. Eliminando mi carpeta node_modules
  2. En package.json cambio RN y reacciono el número de versión.
  3. Ejecuto 'NPM install'

Pensé que podría ser el problema nativo de React, así que vuelvo a la versión de vista previa que usé 0.53.0. Pero este problema aún existe. Vuelvo de nuevo a 0,48, el problema sigue ahí. etcétera.

Yo uso socket.io-client 2.0.3 (he intentado 2.0.4 pero no ayuda)

  • [x] informar un error
  • [] solicitar una función

Configuración

  • SO: Windows 10 de 64 bits
  • navegador: React Native
  • versión de socket.io: 2.0.3

No tengo ni idea de lo que está pasando.
Espero que alguien te ayude. Gracias

Comentario más útil

Tengo problemas para conectar el websocket (socket.io-client, trnasport: ['websocket']) en iOS con el servidor web.
Curiosamente, funciona cuando enciendo "Debug JS Remotely" en el dispositivo.
Esto podría ser un problema con la versión nativa de reacción en iOS. Solo tengo curiosidad por saber si alguien se enfrenta al mismo problema.

Todos 13 comentarios

+1

Resolví esto agregando la opción ' transports': ['websocket'],

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

Pero esa opción no es necesaria, ¿verdad?
Así que mantengo este problema abierto porque se romperá cuando omito esa opción.

Tuve este problema después de agregar Express al servidor y agregar algunas rutas
y cuando agregué
'transportes': ['websocket'],
funciona bien pero se desconecta después de un tiempo y
PD: se desconecta mientras estoy trabajando con la aplicación, no en el fondo o en otra cosa.

¿Podría proporcionar una forma de reproducirlo? (Lo intenté con broma sin suerte: https://github.com/darrachequesne/jest/commits/test/socket.io)

La configuración de transportes a websocket también resolvió mi problema, pero, por supuesto, desactiva el sondeo http, lo cual es desafortunado. Pasos para reproducir:

  1. Instale el zócalo. [email protected] en un proyecto nativo de reacción, agregue código para crear una nueva conexión de socket io y ejecute el emulador de Android
  2. Asegúrese de que un servidor de nodo esté ejecutando [email protected] y habilite el registro de depuración
    Se esperaba : la conexión para establecer (el simulador ios se conecta correctamente)
    Actual : socket io emite un connect_error en el cliente con un código de 'error de análisis'. Tras la inspección, la respuesta xhr. dada es una cadena vacía que socket io interpreta como un error de análisis. El mensaje que no se puede analizar parece ser el mensaje 'pong' del servidor socket io.

Tengo el mismo problema en iOS, la solución temporal de agregar la opción 'transports': ['websocket'] también funcionó para mí.

Configuración:

  • socket.io 2.1.1
  • reaccionar 16.3.2
  • react-native 0.52.0
  • iOS 11.2

Estoy tratando de conectar socket.io en mi Android nativo de reacción. sin embargo, no se conecta. Probé algunos tutoriales e iOS funciona bien, pero Android no. He probado el 'transports':['websocket'] pero todavía no funciona :( .. ¿Alguna sugerencia o idea o códigos de muestra?

Mi backend es Nodejs y también usó socket.io. ¡Gracias!

Estoy tratando de conectar socket.io en mi Android nativo de reacción. sin embargo, no se conecta. Probé algunos tutoriales e iOS funciona bien, pero Android no. He probado el 'transports':['websocket'] pero todavía no funciona :( .. ¿Alguna sugerencia o idea o códigos de muestra?

Mi backend es Nodejs y también usó socket.io. ¡Gracias!
¿Encontró alguna solución a esto? Tengo el mismo problema en react-native en Android.

mismo problema

hola chicos tengo un problema en el enchufe

muestra el tiempo de espera cuando reviso

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

aquí está mi código

para reaccionar lado nativo

importar io desde 'socket.io-client';
var socket = io.connect ('http: // localhost: 8888', {transportes: ['websocket'], actualización: falso});
socket.on ('noticias', función (datos) {
console.log (datos);
socket.emit ('mi otro evento', {mi: 'datos'});
});

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

lado del servidor:

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

servidor.Escuchar (8888);
// ADVERTENCIA: ¡app.listen (80) NO funcionará aquí!

app.get ('/', function (req, res) {
res.sendFile (__ dirname + '/index.html');
});

io.on ('conexión', función (enchufe) {
socket.emit ('noticias', {hola: 'mundo'});
socket.on ('mi otro evento', función (datos) {
console.log (datos);
});
});

index.html





WebScockets 101

Ya tengo existencias necesito ayuda

Incluso tengo el problema de conectar el socket-io en Android. El RN puede conectarse como cliente, sin embargo, lo mismo ocurre con la aplicación web react pero no con la aplicación móvil react. Sugiera la solución.

Intente degradar socket.io-client a 1.7.2, me funciona.

Tengo problemas para conectar el websocket (socket.io-client, trnasport: ['websocket']) en iOS con el servidor web.
Curiosamente, funciona cuando enciendo "Debug JS Remotely" en el dispositivo.
Esto podría ser un problema con la versión nativa de reacción en iOS. Solo tengo curiosidad por saber si alguien se enfrenta al mismo problema.

¿Fue útil esta página
0 / 5 - 0 calificaciones