Spaces:
Sleeping
Sleeping
Introduce WebSocket-based notification service with targeted delivery and subscription support.
858bf77 metadata
title: NotificationChannel
emoji: 🔔
colorFrom: indigo
colorTo: blue
sdk: docker
pinned: true
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
🔔 NotificationChannel
Service de notifications en temps réel professionnel
Notification push • WebSockets • Diffusion ciblée • Historique
✨ Fonctionnalités
- 🚀 Connexions WebSocket - Gestion optimisée des connexions persistantes
- 🎯 Notifications ciblées - Envoi par utilisateur, rôle ou diffusion globale
- 📊 Historique intelligent - Conservation des dernières notifications
- 🔐 Sécurité renforcée - Gestion de session et validation
- 📈 Monitoring intégré - Statistiques temps réel des connexions
🏗️ Architecture
graph TD
A[Client] -->|WebSocket| B(API Gateway)
B --> C{NotificationChannel}
C --> D[(Historique)]
C --> E[Utilisateur]
C --> F[Rôle]
C --> G[Broadcast]
🚀 Déploiement
# Construction de l'image
docker build -t notification-channel .
# Lancement du service
docker run -d -p 7860:7860 --name notif-service notification-channel
Accès rapide :
- Interface : http://0.0.0.0:7860
- Documentation API : http://0.0.0.0:7860/api-docs
⚙️ Configuration
| Variable | Défaut | Description |
|---|---|---|
APP_HOST |
0.0.0.0 | Adresse d'écoute du service |
APP_PORT |
7860 | Port d'écoute du service |
MAX_HISTORY_SIZE |
1000 | Taille max de l'historique |
NOTIF_TTL |
3600 | Durée de vie des notifications (sec) |
🔄 Workflow CI/CD
graph LR
A[Code] --> B[Tests]
B --> C[Build Docker]
C --> D[Scan Sécurité]
D --> E[Staging]
E --> F[Validation]
F --> G[Production]
📋 API Endpoints
WebSocket
ws://localhost:8000/ws/{user_id}- Connexion utilisateurws://localhost:8000/ws/broadcast- Diffusion globale
REST API
POST /notify/user/{user_id}- Notification individuellePOST /notify/role/{role}- Notification par rôlePOST /notify/broadcast- Diffusion généraleGET /history/{user_id}- Historique utilisateur
🛠️ Développement
# Installation des dépendances
pip install -r requirements.txt
# Lancement en mode dev
uvicorn main:app --reload --host 0.0.0.0 --port 7860