Kann ich fangen die "kann keine Verbindung" Fehler für eine fehlgeschlagene websocket-Verbindung?
Brauche ich, um zu testen, ob die Verbindung zu meinem websocket-server hergestellt ist oder nicht.
In dieser Zeit, ich KANN mit dem server verbinden, aber ich möchte in der Lage sein zu fangen die Möglichkeit, dass sich der server nicht erreichbar, also diese Frage ist über das, was zu tun ist, wenn die websocket-Verbindung kann nicht hergestellt werden oder wenn es mal aus.
Nur die grundlegende websocket-code in Firefox, es wird timeout in etwa 20 Sekunden und rufen Sie meine Fehler-handler. Aber es werfen auch einen JavaScript-Fehler, die (zumindest bei mir mit Firebug) zeigt sich in den browser. Das log zeigt dann:
Firefox can't establish a connection to the server at ws://192.168.0.1/.
Was ich bisher ausprobiert habe:
- Verhindern, dass die 20-Sekunden-timeout durch das hinzufügen meiner eigenen
window.timeout
die überprüft, ob dieonopen
handler aufgerufen wurde oder noch nicht, aber das bedeutet nicht verhindern, dass die JavaScript-Fehler. -
Kraft-schließen der websocket-am Ende meiner eigenen timeout, aber jetzt bekomme ich ZWEI JavaScript-Fehler - original-plus:
The connection to ws://192.168.0.1/was interrupted while the page was loading.
-
Hinzufügen
try {} catch(e) {}
zu meinem code, sowohl beim anschließen der Steckdose und schließen es - keine änderung.
Irgendwelche Ideen, wie man das websocket Fehler, nicht die im browser angezeigt werden?
- Wollen Sie nur verhindern, dass die websocket-Fehler aus zu zeigen, oder wäre das Verbot aller Fehlermeldungen werden ok? Die Antwort kann hier hilfreich sein: stackoverflow.com/questions/7120290/...
- Zu dieser Zeit, würde ich es vorziehen, nur um zu verhindern, dass der websocket-Fehler - falls das überhaupt möglich ist. Wenn nicht, könnte ich mit der option Sie gebucht. Danke!
- Leider bin ich nicht vertraut genug mit websockets zu empfehlen, eine Art filter für diejenigen, die Fehler speziell. Viel Glück aber!
- Keine Sorge, Dank für die Prüfung!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ich habe learnd so weit ist: you cant :0(
... denn dies ist etwas browser-spezifisches Verhalten...
console.log
;0)mit dem code habe ich allerdings habe ich entfernen Sie einige der Fehlermeldungen, vielleicht ist es ' ll helfen 😉
e.g:
Eine Grundlegende Klasse zum wrap WS : Haben Sie einen Blick auf Rückrufe !
Haben Sie einen Blick auf die Connect() : onError(), onClose () - Funktion
WebSocket
und auch nicht überschreibenconsole
wie du schon erwähnt hast, zu tun?)new WebSocket( HostUrl() );
imthis.Open();
. Das einfangen wird gehandhabt außerhalb, in der zweiten code-block, also bitte haben Sie einen Blick auf dieSocket.onError
Rückruf. Es muss nicht überschreibenconsole
weil es ist nicht beabsichtigt, dies zu tun.. wenn pop-up-Fehler und nicht behandelt werden, durch die callback-man kann - override-Konsole.log-aber es bringt den browser debug-Funktion, so dass es nicht dort standardmäßig 😉