WebSockets - Eventos y acciones

Es necesario inicializar la conexión al servidor desde el cliente para la comunicación entre ellos. Para inicializar la conexión, se requiere la creación de un objeto Javascript con la URL con el servidor local o remoto.

var socket = new WebSocket(“ ws://echo.websocket.org ”);

La URL mencionada anteriormente es una dirección pública que se puede utilizar para pruebas y experimentos. El servidor websocket.org siempre está activo y cuando recibe el mensaje y lo envía de vuelta al cliente.

Este es el paso más importante para garantizar que la aplicación funcione correctamente.

Web Sockets - Eventos

Hay cuatro API principales de Web Socket events -

  • Open
  • Message
  • Close
  • Error

Cada uno de los eventos se maneja implementando funciones como onopen, onmessage, onclose y onerrorfunciones respectivamente. También se puede implementar con la ayuda del método addEventListener.

La breve descripción de los eventos y funciones se describe a continuación:

Abierto

Una vez que se ha establecido la conexión entre el cliente y el servidor, el evento abierto se dispara desde la instancia de Web Socket. Se llama como el protocolo de enlace inicial entre el cliente y el servidor. El evento, que se genera una vez que se establece la conexión, se llamaonopen.

Mensaje

El evento de mensaje ocurre generalmente cuando el servidor envía algunos datos. Los mensajes enviados por el servidor al cliente pueden incluir mensajes de texto sin formato, datos binarios o imágenes. Siempre que se envían los datos, elonmessage se activa la función.

Cerca

El evento de cierre marca el final de la comunicación entre el servidor y el cliente. Es posible cerrar la conexión con la ayuda deoncloseevento. Después de marcar el final de la comunicación con la ayuda deoncloseevento, no se pueden transferir más mensajes entre el servidor y el cliente. El cierre del evento también puede ocurrir debido a una mala conectividad.

Error

Marcas de error por algún error, que ocurre durante la comunicación. Está marcado con la ayuda deonerror evento. Onerrorsiempre va seguido de la terminación de la conexión. La descripción detallada de todos y cada uno de los eventos se analiza en capítulos posteriores.

Web Sockets - Acciones

Los eventos generalmente se activan cuando sucede algo. Por otro lado, se toman acciones cuando un usuario quiere que suceda algo. Las acciones se realizan mediante llamadas explícitas que utilizan funciones de los usuarios.

El protocolo Web Socket admite dos acciones principales, a saber:

  • enviar ()
  • cerca( )

enviar ()

Esta acción generalmente se prefiere para alguna comunicación con el servidor, que incluye el envío de mensajes, que incluye archivos de texto, datos binarios o imágenes.

Un mensaje de chat, que se envía con la ayuda de la acción send (), es el siguiente:

// get text view and button for submitting the message
var textsend = document.getElementById(“text-view”);
var submitMsg = document.getElementById(“tsend-button”);

//Handling the click event
submitMsg.onclick = function ( ) {
   // Send the data
   socket.send( textsend.value);
}

Note - Enviar los mensajes solo es posible si la conexión está abierta.

cerca ( )

Este método significa adiós apretón de manos. Termina la conexión por completo y no se pueden transferir datos hasta que se restablezca la conexión.

var textsend = document.getElementById(“text-view”);
var buttonStop = document.getElementById(“stop-button”);

//Handling the click event
buttonStop.onclick = function ( ) {
   // Close the connection if open
   if (socket.readyState === WebSocket.OPEN){
      socket.close( );
   }
}

También es posible cerrar la conexión deliberadamente con la ayuda del siguiente fragmento de código:

socket.close(1000,”Deliberate Connection”);