Wenn Sie in Firefox (mindestens) ESC drücken, werden alle geöffneten WebSockets-Verbindungen geschlossen. Ich muss diese Trennung erfassen und versuchen, wieder zu verbinden, sobald es wieder verfügbar ist.Wie erhalte ich eine WebSocket-Verbindungsunterbrechung?
Hier ist ein Beispiel für den Code, den ich versucht habe zu implementieren, aber nichts, was ich herausfinden kann, fängt den Fehler und erlaubt mir, es elegant zu behandeln.
Werfen Sie einen Blick auf den Code: http://jsfiddle.net/w5aAK/
var url = "ws://echo.websocket.org";
try {
socket = window['MozWebSocket'] ? new MozWebSocket(url) : new WebSocket(url);
socket.onopen = function(){
console.log('Socket is now open.');
};
socket.onerror = function (error) {
console.error('There was an un-identified Web Socket error');
};
socket.onmessage = function (message) {
console.info("Message: %o", message.data);
};
} catch (e) {
console.error('Sorry, the web socket at "%s" is un-available', url);
}
setTimeout(function(){
socket.send("Hello World");
}, 1000);
Schalten Sie Ihre Konsole und die Ausgabe sehen.
Mache ich hier etwas falsch, oder ist es einfach nicht möglich, weil die Verbindung außerhalb des Bereichs des JS-Skripts ausgeführt wird?
Jede Eingabe wäre hilfreich.
Danke!
Sie rufen sollte 'socket.send()' innerhalb der 'onopen' Rückruf , weil nach 1 Sekunde noch keine Verbindung hergestellt werden kann. – neevek
Ich bin mir dessen bewusst und weiß, wie ich damit umgehen soll, aber das ist nicht die Frage, die ich stelle. – Zach
Die ESC-Taste Problem scheint in Firefox behoben 27 – Tieme