pagechat-backend / README.md
Philippe
Fix: Use Docker SDK in README.md frontmatter for HF Spaces
1eca25d
---
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**