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

  1. Installez l'extension PageChat dans Chrome
  2. Configurez l'URL du serveur dans service_worker.js :
    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
    {"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 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

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

🤝 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