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 @@ + + +
+ + +Comprendre le fonctionnement des WebSockets et leur utilisation dans les applications web.
++ 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. +
++ 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. +
+ + +
+ 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 :
+
Aspect | +WebSocket | +HTTP | +
---|---|---|
Connexion | +Persistante | +Fermée après chaque requête | +
Latence | +Faible, connexion unique | +Haute, chaque requête nécessite un nouvel échange | +
Mode de communication | +Bidirectionnel, full-duplex | +Requête-réponse, unidirectionnel | +
Cas d’utilisation | +Chat, jeux, notifications, flux de données | +API REST, chargement de pages | +
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()
+
+ 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");
+};
+
+ + Exécutez le serveur Python, puis ouvrez le fichier client dans un navigateur pour voir les messages échangés. +
+