S'intégrer WebSocket dans Flask et FastAPI

WebSocket est une technologie puissante pour établir des canaux de communication bidirectionnels en temps réel entre les serveurs et les clients. Vous trouverez ci-dessous un guide sur la façon d'intégrer WebSocket dans deux frameworks populaires, Flask et FastAPI.

S'intégrer WebSocket dans Flask

Étape 1 : Installer les bibliothèques

Tout d'abord, vous devez installer les bibliothèques flask et flask-socketio à l'aide de la commande suivante :

pip install Flask flask-socketio

Étape 2: configurer l'application

Voici un exemple d'intégration WebSocket dans une Flask application :

from flask import Flask, render_template  
from flask_socketio import SocketIO, emit  
  
app = Flask(__name__)  
socketio = SocketIO(app)  
  
@app.route('/')  
def index():  
    return render_template('index.html')  
  
@socketio.on('message')  
def handle_message(message):  
    emit('response', {'data': message})  
  
if __name__ == '__main__':  
    socketio.run(app)  

Dans l'extrait de code ci-dessus, nous utilisons la flask-socketio bibliothèque pour créer un WebSocket serveur. La handle_message fonction est appelée lorsqu'un client envoie un message et le serveur répond en émettant un response événement.

S'intégrer WebSocket dans FastAPI

Étape 1 : Installer les bibliothèques

Installez les bibliothèques fastapi et uvicorn à l'aide de la commande suivante :

pip install fastapi uvicorn

Étape 2: configurer l'application

Voici un exemple d'intégration WebSocket dans une FastAPI application :

from fastapi import FastAPI, WebSocket
from fastapi.responses import HTMLResponse  
  
app = FastAPI()  
  
@app.get('/')  
def get():  
    return HTMLResponse(content=open("index.html").read())  
  
@app.websocket("/ws")  
async def websocket_endpoint(websocket: WebSocket):  
    await websocket.accept()  
    while True:  
        data = await websocket.receive_text()  
        await websocket.send_text(f"Server received: {data}")

Dans l'extrait de code ci-dessus, nous utilisons FastAPI pour créer un WebSocket serveur. La websocket_endpoint fonction accepte WebSocket les connexions, écoute les données envoyées par les clients et répond en renvoyant les données au client.

Conclusion

L'intégration WebSocket dans des frameworks populaires comme Flask et FastAPI ouvre des possibilités de création d'applications en temps réel et de communication bidirectionnelle entre les serveurs et les clients.