Travaux pratique en Python & web pour un travail pratique, du cours de réseau de l'universita di corsica pasquale paoli.
pip install fastapi uvicorn websocketspython main.pyOuvrez plusieurs onglets/fenêtres sur : http://127.0.0.1:8000/static/index.html
Initialisation de la connexion :

Étapes :
- Le client ouvre une connexion WebSocket vers
ws://localhost:8000/ws - Le serveur accepte la connexion avec
websocket.accept() - Le serveur ajoute cette connexion à la liste
connections[] - Le serveur envoie immédiatement la valeur actuelle du compteur
- Le client affiche cette valeur
Modification de la valeur du Compteur :

Étapes :
-
Client (Frontend) :
- L'utilisateur clique sur le bouton
+ou-. - La fonction
change(d)met à jour le compteur localement. - Un debounce de 250ms attend que l'utilisateur arrête de cliquer.
- Envoie la nouvelle valeur du compteur au serveur via WebSocket.
- L'utilisateur clique sur le bouton
-
Serveur (Backend) :
- Reçoit le message JSON :
{"counter": la_nouvelle_valeur}. - Met à jour la variable globale
counter. - Appelle
broadcast()pour notifier tous les clients.
- Reçoit le message JSON :
-
Broadcast :
- Parcourt la liste
connections[]. - Envoie le nouveau compteur à chaque client connecté.
- Si l'envoi échoue, retire le client de la liste (déconnexion automatique, le client re-tentera de ce connecter au bout de 3s).
- Parcourt la liste
-
Reception :
- Les client reçoivent le message avec le nouveau compteur.
- Ils mettent à jour leur affichage automatiquement avec alpinejs.
Déconnexion &| Reconnexion :