WebSockets - Fermeture d'une connexion

CloseL'événement marque la fin d'une communication entre le serveur et le client. La fermeture d'une connexion est possible à l'aide deoncloseun événement. Après avoir marqué la fin de la communication avec l'aide deoncloseévénement, aucun message ne peut être transféré entre le serveur et le client. La clôture de l'événement peut également se produire en raison d'une mauvaise connectivité.

le close() méthode signifie goodbye handshake. Il met fin à la connexion et aucune donnée ne peut être échangée à moins que la connexion ne s'ouvre à nouveau.

Semblable à l'exemple précédent, nous appelons le close() méthode lorsque l'utilisateur clique sur le deuxième bouton.

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();
   }
}

Il est également possible de transmettre le code et les paramètres de raison que nous avons mentionnés précédemment comme indiqué ci-dessous.

socket.close(1000, "Deliberate disconnection");

Le code suivant donne un aperçu complet de la façon de fermer ou de déconnecter une connexion Web Socket -

<!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>

La sortie est la suivante -