Integracija v WebSocket in Flask FastAPI

WebSocket je zmogljiva tehnologija za vzpostavitev dvosmernih komunikacijskih kanalov v realnem času med strežniki in odjemalci. Spodaj je vodnik o integraciji WebSocket v dva priljubljena okvira Flask in FastAPI.

Vključevanje WebSocket v Flask

1. korak: Namestite knjižnice

Najprej morate namestiti knjižnice flask in flask-socketio z naslednjim ukazom:

pip install Flask flask-socketio

2. korak: Nastavite aplikacijo

Tu je primer integracije WebSocket v Flask aplikacijo:

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)  

V zgornjem delčku kode uporabljamo knjižnico flask-socketio za ustvarjanje WebSocket strežnika. Funkcija handle_message se pokliče, ko odjemalec pošlje sporočilo, strežnik pa se odzove z oddajanjem response dogodka.

Vključevanje WebSocket v FastAPI

1. korak: Namestite knjižnice

Namestite knjižnice fastapi in uvicorn z naslednjim ukazom:

pip install fastapi uvicorn

2. korak: Nastavite aplikacijo

Tu je primer integracije WebSocket v FastAPI aplikacijo:

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

V zgornjem delčku kode, ki ga uporabljamo FastAPI za ustvarjanje WebSocket strežnika. Funkcija websocket_endpoint sprejema WebSocket povezave, posluša podatke, ki jih pošljejo odjemalci, in se odzove s pošiljanjem podatkov nazaj odjemalcem.

Zaključek

Integracija WebSocket v priljubljena ogrodja, kot je Flask in, FastAPI odpira možnosti za ustvarjanje aplikacij v realnem času in dvosmerno komunikacijo med strežniki in odjemalci.