đ Mise Ă jour Configuration WebSocket Frontend¶
Date : 01/10/2025 Type : Configuration - Variables d'environnement Impact : Frontend React - WebSocket URL
đ RĂSUMĂ DES MODIFICATIONS¶
Changement principal¶
Ancienne URL : wss://housing.boaz-study.tech/api/ws
Nouvelle URL : wss://api-housing.boaz-study.tech/ws
Principe appliquĂ©¶
â AUCUN HARDCODING - Utilisation exclusive des variables d'environnement
đ§ FICHIERS MODIFIĂS¶
1. frontend/.env (Production)¶
1 2 3 4 5 | |
2. frontend/.env.example (Template dĂ©veloppement)¶
1 2 3 4 5 6 7 8 9 | |
3. frontend/src/services/websocketService.js¶
Nettoyage du code :
1 2 3 4 5 6 7 8 9 10 11 12 | |
AmĂ©liorations : - â Suppression du hardcoding - â Suppression du fallback (masquait les erreurs de config) - â Validation stricte de la variable d'env - â Message d'erreur explicite si manquante
đïž ARCHITECTURE WEBSOCKET¶
Configuration actuelle¶
1 2 3 4 5 6 7 | |
Composants utilisant WebSocket¶
Via hooks spécialisés :
-
StatistiquesSection.js1 2
import { useSouscriptionUpdates } from '../../hooks/useWebSocket'; useSouscriptionUpdates(() => loadStatistiques()); -
HistoriqueSection.js1 2
import { useSouscriptionUpdates } from '../../hooks/useWebSocket'; useSouscriptionUpdates(() => loadSouscriptions()); -
LogementList.js1 2
import { useLogementUpdates } from '../../hooks/useWebSocket'; useLogementUpdates(() => loadLogements());
Tous utilisent le mĂȘme service centralisĂ© â Configuration unique via .env
â VALIDATION DE LA CONFIGURATION¶
Variables d'environnement¶
1 2 3 4 5 6 | |
Test de connexion¶
1 2 3 4 5 6 7 8 9 10 11 | |
Test de fonctionnement¶
1 2 3 4 5 6 | |
đš CONFIGURATION BACKEND REQUISE¶
Backend doit Ă©couter sur /ws (sans /api)¶
Fichier : backend/app/main.py
1 2 3 4 | |
Vérification :
1 2 3 | |
Configuration Nginx/Ingress¶
Si WebSocket ne se connecte pas, vérifier la config proxy :
1 2 3 4 5 6 7 8 9 10 11 | |
đ ENVIRONNEMENTS¶
DĂ©veloppement Local¶
1 2 3 | |
Démarrage :
1 2 3 4 5 6 | |
Production¶
1 2 3 | |
Déploiement :
1 2 3 4 5 6 | |
đ AVANTAGES DE CETTE CONFIGURATION¶
1. Centralisation¶
â Une seule variable d'environnement pour tout le frontend â Pas de duplication de l'URL dans le code â Facile Ă modifier selon l'environnement
2. SĂ©curitĂ©¶
â Pas de secrets hardcodĂ©s â Configuration diffĂ©rente dev/prod â Validation stricte de la prĂ©sence de la variable
3. MaintenabilitĂ©¶
â
Changement d'URL = 1 ligne dans .env
â
Pas de recherche dans tout le code
â
Documentation claire des valeurs attendues
4. Debugging¶
â Message d'erreur clair si config manquante â Logs explicites de l'URL utilisĂ©e â Pas de fallback silencieux qui masque les problĂšmes
đ TROUBLESHOOTING¶
ProblĂšme : WebSocket ne se connecte pas¶
1. Vérifier la variable d'environnement
1 2 3 4 | |
2. Vérifier que le frontend a été rebuild
1 2 3 4 | |
3. Vérifier les logs console navigateur
1 2 3 | |
4. Vérifier que le backend écoute bien sur /ws
1 2 3 4 5 6 | |
ProblĂšme : Erreur "REACT_APP_WS_URL non dĂ©finie"¶
Cause : Variable manquante dans .env
Solution :
1 2 3 | |
ProblĂšme : WebSocket se connecte Ă l'ancienne URL¶
Cause : Cache navigateur ou frontend pas rebuild
Solution :
1 2 3 4 5 6 7 | |
đ RĂFĂRENCES¶
Documentation WebSocket¶
- Service :
frontend/src/services/websocketService.js - Hooks :
frontend/src/hooks/useWebSocket.js - Config Backend :
backend/app/routers/websocket.py - Doc générale :
WEBSOCKET_CONFIG.md
Variables d'environnement React¶
- Create React App - Environment Variables
- Les variables doivent commencer par
REACT_APP_ - Compilées au build time (pas runtime)
WebSocket URLs¶
- Local dev :
ws://(non sécurisé) - Production :
wss://(sécurisé, obligatoire pour HTTPS)
â CHECKLIST DĂPLOIEMENT¶
Avant dĂ©ploiement¶
- Variable
REACT_APP_WS_URLcorrecte dans.env -
.env.exampledocumenté avec exemples -
websocketService.jsutilise uniquementprocess.env - Aucun hardcoding d'URL dans le code
- Backend écoute bien sur
/ws - Config Nginx/Ingress pour WebSocket OK
AprĂšs dĂ©ploiement¶
- Rebuild frontend avec nouvelles env vars
- Tester connexion WebSocket en console
- Vérifier logs : "Connexion confirmée"
- Tester notification temps réel (créer souscription)
- Vérifier statistiques se mettent à jour auto
đŻ RĂSUMö
Modification : URL WebSocket frontend centralisée via variable d'environnement
Impact : Configuration plus propre, maintenable et sécurisée
Action requise : Rebuild frontend aprĂšs modification .env
Validation : Console doit afficher wss://api-housing.boaz-study.tech/ws
Mise Ă jour contexte projet : Ă faire dans .claude/project-context.md
Section à mettre à jour : - Intégrations tierces > WebSocket - Configuration & Déploiement > Variables d'environnement
Auteur : Ăquipe Boaz-Housing Dev Date : 01/10/2025