Socket.io-client: Kann keine Verbindung herstellen und erneut verbinden bei Reagieren nativ

Erstellt am 4. März 2018  ·  13Kommentare  ·  Quelle: socketio/socket.io-client

Ich habe diese Lib ein Jahr lang benutzt und alles läuft gut.
Ich begann mit RN 0.45 und 0.48 und dann 0.53.0. Alles ist perfekt.

Bis ich aktualisiere, um native 0.53.3 zu reagieren, und dieses Problem auftritt.
das ist der fehler den ich bekommen habe
{"type":"TransportError","description":{"line":"76","collumn":"7944","sourceURL":"index.android.bundle"}}
manchmal habe ich "timeout"

Ich habe keinen Code geändert, ich habe keine Abhängigkeit geändert.
Was ich gerade gemacht habe:

  1. Löschen meines node_modules-Ordners
  2. In package.json ändere ich RN und reagiere auf die Versionsnummer.
  3. Ich führe 'NPM-Installation' aus

Ich dachte, es könnte das native Problem von React sein, also rolle ich zurück zu der Vorschauversion, die ich mit 0.53.0 verwendet habe. Aber dieses Problem besteht immer noch. Ich drehe wieder auf 0.48 zurück, das Problem ist immer noch da. und so weiter.

Ich benutze socket.io-client 2.0.3 (ich habe 2.0.4 probiert, aber nicht geholfen)

  • [x] einen Fehler melden
  • [ ] Feature anfordern

Aufstellen

  • Betriebssystem: Windows 10 64bit
  • Browser: React Native
  • socket.io-Version: 2.0.3

Ich habe keine Ahnung was los ist.
Hoffe jemand wird helfen. Dankeschön

Hilfreichster Kommentar

Ich habe Probleme beim Verbinden des Websockets (socket.io-client, trnasport:['websocket']) auf iOS mit dem Webserver.
Interessanterweise funktioniert es, wenn ich auf dem Gerät "Debug JS Remotely" aktiviere.
Dies könnte ein Problem mit der reaktiven Version auf iOS sein. Bin nur neugierig, ob jemand das gleiche Problem hat.

Alle 13 Kommentare

+1

Ich habe dies gelöst, indem ich die Option " transports': ['websocket'], hinzugefügt habe

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

Aber diese Option ist nicht erforderlich, oder?
Also lasse ich dieses Problem offen, weil es kaputt geht, wenn ich diese Option weglasse.

Ich hatte dieses Problem, nachdem ich Express zum Server hinzugefügt und einige Routen hinzugefügt hatte
und als ich hinzugefügt habe
'transportiert': ['websocket'],
es funktioniert gut, aber es trennt sich nach einer Weile und
PS: Es wird getrennt, während ich mit der App arbeite, nicht im Hintergrund oder etwas anderes.

Könnten Sie bitte eine Möglichkeit zur Reproduktion angeben? (Ich habe es mit Scherz ohne Glück versucht: https://github.com/darrachequesne/jest/commits/test/socket.io)

Das Einstellen von Transporten auf Websocket hat mein Problem auch gelöst, aber natürlich wird das HTTP-Polling deaktiviert, was bedauerlich ist. Schritte zum Reproduzieren:

  1. Steckdose installieren. [email protected] in einem
  2. Stellen Sie sicher, dass auf einem Knotenserver [email protected] ausgeführt wird und aktivieren Sie die Debug-Protokollierung
    Erwartet : die Verbindung wird hergestellt (ios-Simulator verbindet sich erfolgreich)
    Aktuell: Buchse io aussendet einen connect_error auf dem Client mit einem Code von ‚Parse - Fehler‘. Bei der Überprüfung ist die angegebene xhr.response eine leere Zeichenfolge, die von socket io als Analysefehler interpretiert wird. Die Nachricht, die nicht geparst werden kann, scheint die 'Pong'-Nachricht vom Socket-IO-Server zu sein.

Ich habe das gleiche Problem auf iOS, die vorübergehende Lösung des Hinzufügens der Option 'transports': ['websocket'] auch bei mir funktioniert.

Aufbau:

  • socket.io 2.1.1
  • reagieren 16.3.2
  • reagieren-native 0.52.0
  • iOS 11.2

Ich versuche, socket.io auf meinem nativen Android-Reaktionsgerät zu verbinden. es stellt jedoch keine Verbindung her. Ich habe einige Tutorials ausprobiert und iOS funktioniert gut, Android jedoch nicht. Ich habe das 'transports':['websocket'] ausprobiert, funktioniert aber immer noch nicht :( .. Irgendwelche Vorschläge oder Ideen oder Beispielcodes?

Mein Backend ist Nodejs und es verwendet auch socket.io. Vielen Dank!

Ich versuche, socket.io auf meinem nativen Android-Reaktionsgerät zu verbinden. es stellt jedoch keine Verbindung her. Ich habe einige Tutorials ausprobiert und iOS funktioniert gut, Android jedoch nicht. Ich habe das 'transports':['websocket'] ausprobiert, funktioniert aber immer noch nicht :( .. Irgendwelche Vorschläge oder Ideen oder Beispielcodes?

Mein Backend ist Nodejs und es verwendet auch socket.io. Vielen Dank!
Haben Sie eine Lösung dafür gefunden, habe ich das gleiche Problem mit React-Native auf Android.

gleicher Fehler

Hallo Leute, ich habe ein Problem mit der Steckdose

es zeigt eine Zeitüberschreitung an, wenn ich einchecke

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

hier ist mein Code

für reagieren native Seite

io aus 'socket.io-client' importieren;
var socket = io.connect('http://localhost:8888',{transports: ['websocket'],upgrade:false});
socket.on('news', function (data) {
Konsole.log(Daten);
socket.emit('mein anderes Ereignis', { my: 'data'});
});

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

Serverseite:

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

server.listen(8888);
// WARNUNG: app.listen(80) funktioniert hier NICHT!

app.get('/', Funktion (req, res) {
res.sendFile(__dirname + '/index.html');
});

io.on('Verbindung', Funktion (Buchse) {
socket.emit('news', { hallo: 'world'});
socket.on('mein anderes Ereignis', Funktion (Daten) {
Konsole.log(Daten);
});
});

index.html





WebScockets 101

ich habe schon lager brauche hilfe

Sogar ich habe das Problem, das Socket-io auf Android zu verbinden. Der RN kann als Client verbunden werden, jedoch das gleiche für die React-Web-App, aber nicht für die React-Mobile-App. Bitte schlagen Sie die Lösung vor.

Versuchen Sie, socket.io-client auf 1.7.2 herunterzustufen, bei mir funktioniert es.

Ich habe Probleme beim Verbinden des Websockets (socket.io-client, trnasport:['websocket']) auf iOS mit dem Webserver.
Interessanterweise funktioniert es, wenn ich auf dem Gerät "Debug JS Remotely" aktiviere.
Dies könnte ein Problem mit der reaktiven Version auf iOS sein. Bin nur neugierig, ob jemand das gleiche Problem hat.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen