Integrarea WebSocket în Flask și FastAPI

WebSocket este o tehnologie puternică pentru stabilirea canalelor de comunicare bidirecționale în timp real între servere și clienți. Mai jos este un ghid despre cum să integrați WebSocket în două cadre populare Flask și FastAPI.

Integrarea WebSocket în Flask

Pasul 1: Instalați biblioteci

În primul rând, trebuie să instalați bibliotecile flask și flask-socketio folosind următoarea comandă:

pip install Flask flask-socketio

Pasul 2: Configurați aplicația

Iată un exemplu de integrare WebSocket într-o Flask aplicație:

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)  

În fragmentul de cod de mai sus, folosim flask-socketio biblioteca pentru a crea un WebSocket server. Funcția handle_message este apelată atunci când un client trimite un mesaj, iar serverul răspunde prin emiterea unui response eveniment.

Integrarea WebSocket în FastAPI

Pasul 1: Instalați biblioteci

Instalați bibliotecile fastapi și uvicorn folosind următoarea comandă:

pip install fastapi uvicorn

Pasul 2: Configurați aplicația

Iată un exemplu de integrare WebSocket într-o FastAPI aplicație:

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

În fragmentul de cod de mai sus, îl folosim FastAPI pentru a crea un WebSocket server. Funcția websocket_endpoint acceptă WebSocket conexiuni, ascultă datele trimise de clienți și răspunde prin trimiterea datelor înapoi către client.

Concluzie

Integrarea WebSocket în cadre populare precum Flask și FastAPI deschide posibilități pentru crearea de aplicații în timp real și comunicare bidirecțională între servere și clienți.