From 19961bd3f6b6f57a95851b323df6fabd3bef4866 Mon Sep 17 00:00:00 2001 From: Eaielectronic <164761054+Eaielectronic@users.noreply.github.com> Date: Sun, 10 Nov 2024 16:57:35 +0100 Subject: [PATCH] Create WebSockets --- Cours/WebSockets | 350 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 350 insertions(+) create mode 100644 Cours/WebSockets diff --git a/Cours/WebSockets b/Cours/WebSockets new file mode 100644 index 0000000..c5af84b --- /dev/null +++ b/Cours/WebSockets @@ -0,0 +1,350 @@ + + + + + + Cours : Introduction aux WebSockets + + + + +
+

Introduction aux WebSockets

+

Comprendre le fonctionnement des WebSockets et leur utilisation dans les applications web.

+
+ + + + + + + + +
+
+

Historique des WebSockets

+

+ Le protocole WebSocket a été introduit en 2008 et standardisé par l'IETF en 2011. Avant cela, les + applications web reposaient principalement sur le protocole HTTP pour la communication, qui fonctionnait + en mode requête-réponse. WebSocket est conçu pour permettre une communication en temps réel plus efficace, + ouvrant de nouvelles possibilités pour les applications interactives. +

+
+
+

Introduction

+

+ WebSocket est un protocole de communication bidirectionnel, full-duplex, conçu pour fonctionner sur une connexion + TCP, ce qui permet un échange de données en temps réel entre un client (souvent un navigateur) et un serveur. + Contrairement au modèle traditionnel HTTP, où chaque requête du client nécessite une réponse du serveur + (modèle de requête-réponse), WebSocket établit une connexion unique et persistante, permettant au client et + au serveur de s’envoyer des messages à tout moment. +

+ + +
+

Fonctionnement des WebSockets

+


+ Le protocole WebSocket commence par une négociation via une requête HTTP standard, appelée handshake. Une fois la connexion établie, celle-ci reste ouverte, permettant un échange continu de messages entre le client et le serveur. Voici les principales étapes : +
+ Handshake HTTP : +

+ Communication bidirectionnelle : + + Fermeture de la connexion : + +

+
+ +
+

Avantages et inconvénients de WebSocket

+

Avantages :

+ + +

Inconvénients :

+ +
+
+

Comparaison WebSocket vs HTTP

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AspectWebSocketHTTP
ConnexionPersistanteFermée après chaque requête
LatenceFaible, connexion uniqueHaute, chaque requête nécessite un nouvel échange
Mode de communicationBidirectionnel, full-duplexRequête-réponse, unidirectionnel
Cas d’utilisationChat, jeux, notifications, flux de donnéesAPI REST, chargement de pages
+
+
+

Mise en pratique

+ +

Créer un serveur WebSocket avec Python

+

Exemple de code pour un serveur WebSocket avec la bibliothèque websockets en Python.

+
import asyncio
+import websockets
+
+async def serveur(websocket, path):
+    async for message in websocket:
+        await websocket.send(f"Message reçu: {message}")
+
+start_server = websockets.serve(serveur, "localhost", 12345)
+
+asyncio.get_event_loop().run_until_complete(start_server)
+asyncio.get_event_loop().run_forever()
+ +

Créer un client WebSocket avec JavaScript

+

Code d'exemple pour un client WebSocket en JavaScript.

+
// Connexion WebSocket
+const socket = new WebSocket("ws://localhost:12345");
+
+socket.onopen = () => {
+    socket.send("Bonjour serveur");
+};
+
+socket.onmessage = (event) => {
+    console.log("Message reçu: ", event.data);
+};
+
+socket.onclose = () => {
+    console.log("Connexion fermée");
+};
+ +

Tester la connexion

+

+ Exécutez le serveur Python, puis ouvrez le fichier client dans un navigateur pour voir les messages échangés. +

+
+
+ + + + + + +