Aller au contenu

🔌 Documentation WebSocket

Système de notifications temps réel Boaz-Housing


📋 Fichiers Disponibles

configuration.md

Configuration générale du système WebSocket - Architecture backend/frontend - Endpoints WebSocket - Configuration Nginx/Ingress - Troubleshooting

immediate-connection.md

Connexion WebSocket immédiate au démarrage de l'app - Problèmes résolus (sockjs-node, délai connexion) - Architecture finale - Performance avant/après - Guide déploiement

url-update.md

Configuration URL WebSocket sans hardcoding - Variables d'environnement - Changement URL vers wss://api-housing.boaz-study.tech/ws - Validation configuration

changelog.md

Historique des modifications WebSocket - Toutes les mises à jour - Raisons et impacts - Vérifications effectuées


🎯 Configuration Actuelle

URL Production : wss://api-housing.boaz-study.tech/ws

URL Développement : ws://localhost:8001/ws

Variable d'environnement : REACT_APP_WS_URL


🚀 Quick Start

Vérifier la configuration

1
2
3
4
5
# Voir l'URL configurée
cat frontend/.env | grep REACT_APP_WS_URL

# Résultat attendu (production)
REACT_APP_WS_URL=wss://api-housing.boaz-study.tech/ws

Tester la connexion

1
2
3
4
5
6
7
# Ouvrir l'app
https://housing.boaz-study.tech

# Console (F12) - Logs attendus :
🚀 App - Initialisation connexion WebSocket immédiate...
🔌 WebSocket - Tentative de connexion : wss://api-housing.boaz-study.tech/ws
✅ WebSocket - Connexion confirmée par le serveur!

Rebuild après modification

1
2
3
# Rebuild frontend (obligatoire pour charger nouvelles env vars)
docker compose build --no-cache frontend
docker compose restart frontend

📊 Architecture

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Frontend React
  └─→ App.js (useEffect au démarrage)
      └─→ websocketService.connect()
          └─→ wss://api-housing.boaz-study.tech/ws
              └─→ Backend FastAPI /ws
                  └─→ ConnectionManager
                      └─→ broadcast() vers tous clients

Composants :
  ├─→ StatistiquesSection (useSouscriptionUpdates)
  ├─→ HistoriqueSection (useSouscriptionUpdates)
  └─→ LogementList (useLogementUpdates)

🐛 Problèmes Courants

Erreur "sockjs-node failed"

Solution : Désactivé dans immediate-connection.md

Connexion retardée

Solution : Connexion immédiate implémentée dans immediate-connection.md

WebSocket ne se connecte pas

Solution : Voir configuration.md section Troubleshooting


🔗 Liens Utiles

  • Documentation principale
  • Contexte projet
  • Code websocketService.js
  • Code useWebSocket.js

Maintenu par : Équipe Boaz-Housing Dev Dernière mise à jour : 01/10/2025