Spaces:
Sleeping
Sleeping
| 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 | |
| 1. **Installez l'extension** PageChat dans Chrome | |
| 2. **Configurez l'URL du serveur** dans `service_worker.js` : | |
| ```javascript | |
| const SERVER_URL = "https://votre-username-pagechat-backend.hf.space"; | |
| ``` | |
| 3. **Ouvrez n'importe quelle page web** | |
| 4. **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 serveur | |
| - `GET /test` - Interface de test intégrée | |
| ### Socket.IO Events | |
| #### Client → Serveur | |
| - `join_room` - Rejoindre une room de chat | |
| ```json | |
| {"room": "global", "name": "MonPseudo"} | |
| ``` | |
| - `message` - Envoyer un message | |
| ```json | |
| {"text": "Hello!", "name": "MonPseudo", "room": "global"} | |
| ``` | |
| #### Serveur → Client | |
| - `system` - Messages système (connexions, etc.) | |
| - `message` - Messages de chat des utilisateurs | |
| - `history` - 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 | |
| ```bash | |
| python test_client.py | |
| ``` | |
| ### Test manuel | |
| 1. Ouvrez `/test` dans votre navigateur | |
| 2. Testez l'envoi de messages | |
| 3. Ouvrez plusieurs onglets pour simuler plusieurs utilisateurs | |
| ## 🔗 Liens Utiles | |
| - [Extension PageChat](https://github.com/votre-repo/pagechat-extension) | |
| - [Page de test](https://huggingface.co/spaces/votre-username/pagechat-test) | |
| - [Documentation Socket.IO](https://socket.io/docs/) | |
| - [FastAPI Documentation](https://fastapi.tiangolo.com/) | |
| ## 🤝 Contribution | |
| 1. Fork le projet | |
| 2. Créez une branche feature | |
| 3. Commitez vos changements | |
| 4. Pushez vers la branche | |
| 5. 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** |