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.