Aide En Informatique
Latest Posts:

Qu'est ce qu'un WebSoket ? : le protocol de communication en temps réel
Qu'est ce qu'un WebSoket ? : le protocol de communication en temps réel

Communication en temps réel : C'est quoi les websocket? 

Explication pour débutant

Salut les codeurs, je vais faire ce post pour écliarcir la lantenne de mes nombreux followers qui se posent la question de savoir comment par exemple facebook fait pour notifier en temps réel l'utilisateur dans toutes les plateformes (web, desktop, facebook mobile etc..) en meme temps quand il y a quelque chose de son interet (like, post etc..) : bienvenue dans le monde du websocket.

En entrée de jeux, le websocket n'est pas née pour facebook ou avec facebook, mais existe bien longtemps et a été projecté comme protocol pour les communications en temps réel (real time communication en anglais).. au fait le websocket c'est quoi?

L'architecture web est une architecture Client-Serveur c'est le classico que tout developpeur sait et connait et s'il ne sait pas il doit l'apprendre et le connaitre, le client c'est le navigateur, votre navigateur web par exemple(mozilla, chrome, IE etcc), le serveur c'est une machine  distante ou est installée une application capable d'interpreter les requetes HTTP envoyées par le client et d'envoyer en retour des reponses HTTP qui contiennent les données demandées par le client/navigateur cette machine c'est le serveur web, voilà le B-A=BA de l'architecture client serveur qui gouverne le web. dans cette architecture, HTTP commande, sans HTTP comme protocole il serait impossible de faire communiquer le client et le serveur, le probleme de HTTP c'est qu'il est sans mémoire (stateless protocol dans le jargon), ça veut dire que quand le client ouvre une communication HTTP, il attend une reponse du serveur et à peine la reponse obtenue, il y a fermeture immediat de la connexion TCP qui régit cette communication, en fait si le meme client refait une autre requete au meme serveur, le serveur ne se souvient pas du fait que 2 secondes auparavent, il a servit le meme client dans une autre requete HTTP, la communication dans ce cas est uni-directionnelle(direction à sens unique), c'est à dire c'est presque toujours le client qui fait et ouvre une demande HTTP vers le serveur qui doit lui fournir une reponse HTTP, jamais l'inverse, donc le serveur ne peut pas s'il desire, ouvrir une communication vers un client quelconque pour lui fournir des données. HTTP est donc ainsi limité pour certains types d'applications ou chacune des deux parties peut ouvrir la connexion, par exemple vous etes t'il demandé comment les applications de chat comme whatsapp fonctionne t'elle ? Whatsapp comme toutes les applications de Chats ce sont 3 parties ou acteur, Vous(premier acteur)- le serveur de whatsapp(deuxième acteur et acteur centrale et principale) et la personne(troisième acteur)(ou groupe de personne) à qui vous envoyez un message, quand vous envoyez un message à votre ami A, vous ouvrez une communication vers le serveurs de whatsapp(c'est un ensemble de serveur pas à un seul serveur), ce serveur doit à son tour doit ouvrir une communication vers le telephone de votre ami B pour lui signaler qu'il y a un message de vous pour lui à lire, donc vous voyez dans ce scenario que meme le serveur(celui de whatsapp) se trouve dans l'obligation d'ouvrir une connexion vers le telephone de votre ami B, donc l'ouverture d'une connexion ne doit pas etre d'un seul sens comme dans HTTP mais double sens Client-Server /Server-Client donc une communication bidirectionnelle et meme full-duplexe c'est à dire que les requetes et reponses vont des deux sens sans stop... ce mechanisme est possible grace au protocol  websocket, le protocol websocket, c'est ça qui est utilisé par les applications de chat, c'est ça qui est utilisé pour synchroniser toutes vos plateformes facebook en temps réell, c'est ça qui est utilisé par les sites de paris pour vous afficher en temps réel les résultats des match de football, de hanball, de tennis, de formule 1 etc.. sur des pages web car à peine la base de données du serveur a quelques info en plus, il fait un broadcast à tous les clients websocket des navigateurs pour "Pusher" les données en temps réel, donc si dans votre propre application, vous avez une quelconque necessité d'initier une requete à partir du backend vers les clients connéctés par exemple, vous avez ajouté dans votre site la possibilité aux utilisaturs de telecharger un fichier volumineux et pour eviter que l'utilisateur attendent indefinitivement le telechargement du fichier, vous pouvez initier la construction du telechargement en background du cotè du backend et à travers les websocket, signalé coté frontend à l'utilisateur que son telechargement est finit et lui passer le lien ou telecharger, ici je parle des telechargement ou le fichier à telecharger est construit dynamiquement en runtime ce n'est là qu'un simple exemple mais il y a de nombreux cas ou on a necessité de declencher une requetes vers les clients à partir du serveur, alors entre en jeux les websocket, chaque langage propose des bibliothèques pour la gestion des websocket, d'ailleur il y a meme des serveur dedié pour les communications comme pusher, si vous voulez en savoir plus sur pusher et comment on l'utilise dans toutes les  technologies et langages de programmation c'est ici

Voilà le topo sur les websocket.

Happy Coding.

Utilisez vos mega pour des choses utiles.

Abonnez vous au blog https://itinnovdesign.com pour avoir des contenus riches en coding.

mon prochain topic que je suis entrain de preparer sera une application de chat en flutter et Firebase et nous irons donc à la decouverte de firebase en faisant une chat avec Flutter.

Peut être une image de texte qui dit ’WebSocket Connection Client Request Hand Shake Web Socket Server VS HTTP Connection Client Request Response Connection Terminated Server’

 


Author: admin
19.09.2022, 13:20
Category: Network
Comments: 0
Views: 411
-

Share

Comments (0)
There are no comments yet.

Leave A Comment
processing...