WebSockets - Schließen einer Verbindung
CloseEreignis markiert das Ende einer Kommunikation zwischen dem Server und dem Client. Das Schließen einer Verbindung ist mit Hilfe von möglichoncloseVeranstaltung. Nach dem Markieren des Kommunikationsende mit Hilfe vononcloseIm Ereignisfall können keine Nachrichten weiter zwischen dem Server und dem Client übertragen werden. Das Schließen des Ereignisses kann auch aufgrund einer schlechten Konnektivität erfolgen.
Das close() Methode steht für goodbye handshake. Es beendet die Verbindung und es können keine Daten ausgetauscht werden, es sei denn, die Verbindung wird wieder geöffnet.
Ähnlich wie im vorherigen Beispiel nennen wir das close() Methode, wenn der Benutzer auf die zweite Schaltfläche klickt.
var textView = document.getElementById("text-view");
var buttonStop = document.getElementById("stop-button");
buttonStop.onclick = function() {
// Close the connection, if open.
if (socket.readyState === WebSocket.OPEN) {
socket.close();
}
}
Es ist auch möglich, die zuvor erwähnten Code- und Ursachenparameter wie unten gezeigt zu übergeben.
socket.close(1000, "Deliberate disconnection");
Der folgende Code bietet einen vollständigen Überblick über das Schließen oder Trennen einer Web Socket-Verbindung.
<!DOCTYPE html>
<html>
<meta charset = "utf-8" />
<title>WebSocket Test</title>
<script language = "javascript" type = "text/javascript">
var wsUri = "ws://echo.websocket.org/";
var output;
function init() {
output = document.getElementById("output");
testWebSocket();
}
function testWebSocket() {
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) {
onOpen(evt)
};
websocket.onclose = function(evt) {
onClose(evt)
};
websocket.onmessage = function(evt) {
onMessage(evt)
};
websocket.onerror = function(evt) {
onError(evt)
};
}
function onOpen(evt) {
writeToScreen("CONNECTED");
doSend("WebSocket rocks");
}
function onClose(evt) {
writeToScreen("DISCONNECTED");
}
function onMessage(evt) {
writeToScreen('<span style = "color: blue;">RESPONSE: ' +
evt.data+'</span>'); websocket.close();
}
function onError(evt) {
writeToScreen('<span style = "color: red;">ERROR:</span> '
+ evt.data);
}
function doSend(message) {
writeToScreen("SENT: " + message); websocket.send(message);
}
function writeToScreen(message) {
var pre = document.createElement("p");
pre.style.wordWrap = "break-word";
pre.innerHTML = message;
output.appendChild(pre);
}
window.addEventListener("load", init, false);
</script>
<h2>WebSocket Test</h2>
<div id = "output"></div>
</html>
Die Ausgabe ist wie folgt -