2016-07-23 10 views
3

Wir müssen die clientseitige Benutzerschnittstelle aktualisieren, um anzuzeigen, dass eine Nachricht nicht übermittelt werden kann. Wie kann Socket.IO JS-Client einen benutzerdefinierten Rückruf direkt aufrufen, wenn die Nachricht nicht übermittelt werden kann? Zum Beispiel so etwas wie:Erkennen von Socket.IO-Nachrichtenübermittlungsfehler auf der Clientseite

Ich weiß Socket.IO bietet die Ack-Mechanismus zur Bestätigung der Lieferung Erfolg. Daher kann man einen Timer mit einem Handler einrichten, der den Fehler-Callback aufruft, wenn der Ack nach einer gewissen Zeit nicht aufgerufen wird. Aber das scheint nicht der beste Weg zu sein.

Auch gibt es das Fehlerereignis von Socket.IO zur Verfügung gestellt, aber es kommt nicht mit Informationen darüber, welche emittieren den Fehler verursacht.

Antwort

1

Leider gibt es keine Möglichkeit gibt Fehler von Rückrufen zu bekommen, ist der einzige Weg, um in die Tat Ihre eigene Timeout zu erstellen:

var timeoutId = setTimeout(timeoutErrorFn, 500); 

var acknCallbackFn = function(err, userData){ 
    clearTimeout(timeoutId) 
    //manage UserData 
} 

socket.emit('getUserData', acknCallbackFn); 

Source of the code

Und es gibt ein weiteres Problem dazu, open

So vorläufig müssen Sie sich an Ihr manuelles setTimeout halten.

Verwandte Themen