--- 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**