WebSockets - Comunicación dúplex

Antes de sumergirse en la necesidad de enchufes web, es necesario echar un vistazo a las técnicas existentes, que se utilizan para duplex communicationentre el servidor y el cliente. Son los siguientes:

  • Polling
  • Sondeo largo
  • Streaming
  • Postback y AJAX
  • HTML5

Votación

El sondeo se puede definir como un método que realiza solicitudes periódicas independientemente de los datos que existan en la transmisión. Las solicitudes periódicas se envían de forma síncrona. El cliente realiza una solicitud periódica en un intervalo de tiempo especificado al servidor. La respuesta del servidor incluye datos disponibles o algún mensaje de advertencia en él.

Sondeo largo

El sondeo largo, como su nombre indica, incluye una técnica similar al sondeo. El cliente y el servidor mantienen la conexión activa hasta que se obtienen algunos datos o se agota el tiempo de espera. Si la conexión se pierde por alguna razón, el cliente puede comenzar de nuevo y realizar una solicitud secuencial.

El sondeo largo no es más que una mejora del rendimiento sobre el proceso de sondeo, pero las solicitudes constantes pueden ralentizar el proceso.

Transmisión

Se considera la mejor opción para la transmisión de datos en tiempo real. El servidor mantiene la conexión abierta y activa con el cliente hasta que se recuperen los datos necesarios. En este caso, se dice que la conexión está abierta indefinidamente. La transmisión incluye encabezados HTTP que aumentan el tamaño del archivo y aumentan la demora. Esto puede considerarse un gran inconveniente.

AJAX

AJAX se basa en Javascript XmlHttpRequestObjeto. Es una forma abreviada de JavaScript y XML asíncronos.XmlHttpRequestObject permite la ejecución del Javascript sin recargar la página web completa. AJAX envía y recibe solo una parte de la página web.

El fragmento de código de la llamada AJAX con XmlHttpRequest El objeto es el siguiente:

var xhttp;

if (window.XMLHttpRequest) {
   xhttp = new XMLHttpRequest();
} else {
   // code for IE6, IE5
   xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

Los principales inconvenientes de AJAX en comparación con Web Sockets son -

  • Envían encabezados HTTP, lo que aumenta el tamaño total.
  • La comunicación es semidúplex.
  • El servidor web consume más recursos.

HTML5

HTML5 es un marco sólido para desarrollar y diseñar aplicaciones web. Los pilares principales incluyenMark-up, CSS3 y Javascript API juntas.

El siguiente diagrama muestra los componentes HTML5:

El fragmento de código que se proporciona a continuación describe la declaración de HTML5 y su tipo de documento.

<!DOCTYPE html>

¿Por qué necesitamos Web Sockets?

Internet se concibió como una colección de páginas en lenguaje de marcado de hipertexto (HTML) que se vinculan entre sí para formar una red conceptual de información. Durante el transcurso del tiempo, los recursos estáticos aumentaron en número y los elementos más ricos, como imágenes, comenzaron a ser parte del tejido web.

Tecnologías de servidor avanzadas que permitieron páginas de servidor dinámicas, páginas cuyo contenido se generó en base a una consulta.

Pronto, el requisito de tener páginas web más dinámicas condujo a la disponibilidad del lenguaje de marcado de hipertexto dinámico (DHTML). Todo gracias a JavaScript. Durante los años siguientes, vimoscross frame communication en un intento de evitar recargas de página seguidas de HTTP Polling dentro de los marcos.

Sin embargo, ninguna de estas soluciones ofrecía una solución de navegador cruzado verdaderamente estandarizada para la comunicación bidireccional en tiempo real entre un servidor y un cliente.

Esto dio lugar a la necesidad de un protocolo Web Sockets. Dio lugar a la comunicación full-duplex que traía una gran funcionalidad de escritorio a todos los navegadores web.