Spaces:
Sleeping
Sleeping
metadata
title: PageChat Backend
emoji: 🚀
colorFrom: blue
colorTo: purple
sdk: docker
pinned: false
license: mit
🚀 PageChat Backend - Socket.IO Server
Serveur backend FastAPI + Socket.IO pour l'extension PageChat de chat temps réel.
🌟 Fonctionnalités
- ✅ FastAPI moderne et performant
- ✅ Socket.IO pour communication temps réel
- ✅ WebSocket et polling fallback
- ✅ Gestion des rooms pour organiser les conversations
- ✅ Historique des messages persistant en mémoire
- ✅ CORS configuré pour extensions Chrome
- ✅ Logs de debug détaillés
🔧 Architecture
┌─────────────────┐ WebSocket/Polling ┌──────────────────┐
│ Chrome Extension│ ←──────────────────────→ │ FastAPI + SocketIO│
│ (Client) │ │ (Serveur) │
└─────────────────┘ └──────────────────┘
↑ ↑
│ │
💬 Interface 🏠 Gestion des rooms
utilisateur 📝 Historique messages
🚀 Démarrage Rapide
Utilisation avec l'extension
- Installez l'extension PageChat dans Chrome
- Configurez l'URL du serveur dans
service_worker.js:const SERVER_URL = "https://votre-username-pagechat-backend.hf.space"; - Ouvrez n'importe quelle page web
- Cliquez sur le bouton chat 💬 qui apparaît
Test direct
Visitez l'endpoint /test pour tester l'interface intégrée :
https://votre-username-pagechat-backend.hf.space/test
📡 API Endpoints
HTTP Routes
GET /- Status du serveurGET /test- Interface de test intégrée
Socket.IO Events
Client → Serveur
join_room- Rejoindre une room de chat{"room": "global", "name": "MonPseudo"}message- Envoyer un message{"text": "Hello!", "name": "MonPseudo", "room": "global"}
Serveur → Client
system- Messages système (connexions, etc.)message- Messages de chat des utilisateurshistory- Historique des messages lors de la connexion
🛠️ Configuration
Variables d'environnement
PORT- Port du serveur (défaut: 5000)
Paramètres Socket.IO
- Transports : WebSocket, Polling
- CORS : Autorisation globale pour extensions
- Reconnexion : Automatique côté client
📊 Monitoring
Le serveur affiche des logs détaillés :
- 🔌 Connexions/déconnexions clients
- 🏠 Événements join_room
- 💬 Messages échangés
- 📤 Diffusion vers les rooms
🔒 Sécurité
- ✅ CORS configuré pour extensions Chrome
- ✅ Validation des données des messages
- ✅ Limite d'historique (50 messages max par room)
- ✅ Pas de stockage persistant des données sensibles
📁 Structure du Projet
backend-fastapi/
├── app.py # Serveur principal FastAPI + SocketIO
├── requirements.txt # Dépendances Python
├── huggingface.yml # Configuration HF Spaces
├── README.md # Documentation
└── test_client.py # Client de test (optionnel)
🧪 Tests
Test automatique
python test_client.py
Test manuel
- Ouvrez
/testdans votre navigateur - Testez l'envoi de messages
- Ouvrez plusieurs onglets pour simuler plusieurs utilisateurs
🔗 Liens Utiles
🤝 Contribution
- Fork le projet
- Créez une branche feature
- Commitez vos changements
- Pushez vers la branche
- Ouvrez une Pull Request
📄 License
MIT License - voir le fichier LICENSE pour plus de détails.
🚀 Développé avec FastAPI, Socket.IO et ❤️ pour les communications temps réel