Integrazione WebSocket in Flask e FastAPI

WebSocket è una potente tecnologia per stabilire canali di comunicazione bidirezionali in tempo reale tra server e client. Di seguito è riportata una guida su come integrare WebSocket in due framework popolari Flask e FastAPI.

Integrazione WebSocket in Flask

Passaggio 1: installa le librerie

Innanzitutto, è necessario installare le librerie flask e flask-socketio utilizzando il seguente comando:

pip install Flask flask-socketio

Passaggio 2: configurare l'applicazione

Ecco un esempio di come integrare WebSocket in un'applicazione Flask:

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)  

Nello snippet di codice sopra, utilizziamo la flask-socketio libreria per creare un WebSocket server. La handle_message funzione viene chiamata quando un client invia un messaggio e il server risponde emettendo un response evento.

Integrazione WebSocket in FastAPI

Passaggio 1: installa le librerie

Installa le librerie fastapi e uvicorn usando il seguente comando:

pip install fastapi uvicorn

Passaggio 2: configurare l'applicazione

Ecco un esempio di come integrare WebSocket in un'applicazione FastAPI:

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}")

Nello snippet di codice sopra, usiamo FastAPI per creare un WebSocket server. La websocket_endpoint funzione accetta WebSocket connessioni, ascolta i dati inviati dai client e risponde inviando i dati al client.

Conclusione

L'integrazione WebSocket in framework popolari come Flask e FastAPI apre possibilità per la creazione di applicazioni in tempo reale e la comunicazione bidirezionale tra server e client.