WebSockets - Communication duplex

Avant de plonger dans le besoin de Web sockets, il est nécessaire de jeter un œil aux techniques existantes, qui sont utilisées pour duplex communicationentre le serveur et le client. Ils sont les suivants -

  • Polling
  • Sondage long
  • Streaming
  • Postback et AJAX
  • HTML5

Vote

L'interrogation peut être définie comme une méthode qui effectue des requêtes périodiques quelles que soient les données qui existent dans la transmission. Les demandes périodiques sont envoyées de manière synchrone. Le client fait une demande périodique dans un intervalle de temps spécifié au serveur. La réponse du serveur contient des données disponibles ou un message d'avertissement.

Sondage long

Le sondage long, comme son nom l'indique, comprend une technique similaire comme le sondage. Le client et le serveur maintiennent la connexion active jusqu'à ce que certaines données soient récupérées ou que le délai expire. Si la connexion est perdue pour certaines raisons, le client peut recommencer et effectuer une requête séquentielle.

Une longue interrogation n'est rien d'autre qu'une amélioration des performances par rapport au processus d'interrogation, mais des demandes constantes peuvent ralentir le processus.

Diffusion

Il est considéré comme la meilleure option pour la transmission de données en temps réel. Le serveur maintient la connexion ouverte et active avec le client jusqu'à ce que et à moins que les données requises soient extraites. Dans ce cas, la connexion est dite ouverte indéfiniment. Le streaming comprend des en-têtes HTTP qui augmentent la taille du fichier, augmentant ainsi le délai. Cela peut être considéré comme un inconvénient majeur.

AJAX

AJAX est basé sur Javascript XmlHttpRequestObjet. C'est une forme abrégée de Javascript asynchrone et XML.XmlHttpRequestL'objet permet l'exécution du Javascript sans recharger la page Web complète. AJAX envoie et ne reçoit qu'une partie de la page Web.

L'extrait de code de l'appel AJAX avec XmlHttpRequest L'objet est le suivant -

var xhttp;

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

Les principaux inconvénients de AJAX en comparaison avec Web Sockets sont -

  • Ils envoient des en-têtes HTTP, ce qui augmente la taille totale.
  • La communication est semi-duplex.
  • Le serveur Web consomme plus de ressources.

HTML5

HTML5 est un cadre robuste pour le développement et la conception d'applications Web. Les principaux piliers comprennentMark-up, CSS3 et Javascript API ensemble.

Le diagramme suivant montre les composants HTML5 -

L'extrait de code ci-dessous décrit la déclaration de HTML5 et son doctype.

<!DOCTYPE html>

Pourquoi avons-nous besoin de Web Sockets?

Internet a été conçu pour être une collection de pages HTML (Hypertext Mark-up Language) reliant les unes aux autres pour former un réseau conceptuel d'informations. Au fil du temps, les ressources statiques ont augmenté en nombre et les éléments plus riches, tels que les images, ont commencé à faire partie du tissu Web.

Technologies de serveur avancées qui permettaient des pages de serveur dynamiques - des pages dont le contenu était généré sur la base d'une requête.

Bientôt, l'exigence d'avoir des pages Web plus dynamiques a conduit à la disponibilité du langage DHTML (Dynamic Hypertext Mark-up Language). Tout cela grâce à JavaScript. Au cours des années suivantes, nous avons vucross frame communication pour tenter d'éviter les recharges de page suivies de HTTP Polling dans des cadres.

Cependant, aucune de ces solutions n'offrait une solution cross-browser véritablement standardisée pour la communication bidirectionnelle en temps réel entre un serveur et un client.

Cela a donné lieu à la nécessité du protocole Web Sockets. Cela a donné lieu à une communication en duplex intégral apportant des fonctionnalités de bureau à tous les navigateurs Web.