Integravimas WebSocket į Flask ir FastAPI

WebSocket yra galinga technologija, skirta sukurti dvikrypčius realaus laiko ryšio kanalus tarp serverių ir klientų. Toliau pateikiamas vadovas, kaip integruoti WebSocket į dvi populiarias sistemas Flask ir FastAPI.

Integruojasi WebSocket į Flask

1 veiksmas: įdiekite bibliotekas

Pirmiausia turite įdiegti flask ir flask-socketio bibliotekas naudodami šią komandą:

pip install Flask flask-socketio

2 veiksmas: nustatykite programą

Štai pavyzdys, kaip integruoti WebSocket į Flask programą:

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)  

Aukščiau pateiktame kodo fragmente naudojame biblioteką flask-socketio serveriui sukurti WebSocket. Funkcija handle_message iškviečiama, kai klientas siunčia pranešimą, o serveris atsako paskelbdamas įvykį response.

Integruojasi WebSocket į FastAPI

1 veiksmas: įdiekite bibliotekas

Įdiekite fastapi ir uvicorn bibliotekas naudodami šią komandą:

pip install fastapi uvicorn

2 veiksmas: nustatykite programą

Štai pavyzdys, kaip integruoti WebSocket į FastAPI programą:

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

Aukščiau pateiktame kodo fragmente naudojame FastAPI serverį sukurti WebSocket. Funkcija websocket_endpoint priima WebSocket ryšius, klausosi klientų siunčiamų duomenų ir atsako siųsdama duomenis atgal klientui.

Išvada

Integravimas WebSocket į tokias populiarias sistemas kaip Flask ir FastAPI atveria galimybes kurti programas realiuoju laiku ir dvikryptį ryšį tarp serverių ir klientų.