Integracja WebSocket w Flask i FastAPI

WebSocket to potężna technologia do tworzenia dwukierunkowych kanałów komunikacji w czasie rzeczywistym między serwerami a klientami. Poniżej znajduje się przewodnik dotyczący integracji WebSocket z dwoma popularnymi frameworkami Flask oraz platformą FastAPI.

Integracja WebSocket w Flask

Krok 1: Zainstaluj biblioteki

Najpierw musisz zainstalować biblioteki flask i flask-socketio za pomocą następującego polecenia:

pip install Flask flask-socketio

Krok 2: Skonfiguruj aplikację

Oto przykład integracji WebSocket z Flask aplikacją:

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)  

W powyższym fragmencie kodu używamy biblioteki flask-socketio do stworzenia WebSocket serwera. Funkcja handle_message jest wywoływana, gdy klient wysyła wiadomość, a serwer odpowiada, emitując zdarzenie response.

Integracja WebSocket w FastAPI

Krok 1: Zainstaluj biblioteki

Zainstaluj biblioteki fastapi i uvicorn za pomocą następującego polecenia:

pip install fastapi uvicorn

Krok 2: Skonfiguruj aplikację

Oto przykład integracji WebSocket z FastAPI aplikacją:

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

W powyższym fragmencie kodu używamy FastAPI do utworzenia WebSocket serwera. Funkcja websocket_endpoint akceptuje WebSocket połączenia, nasłuchuje danych wysyłanych przez klientów i odpowiada wysyłając dane z powrotem do klienta.

Wniosek

Integracja WebSocket z popularnymi frameworkami takimi jak Flask i FastAPI otwiera możliwości tworzenia aplikacji czasu rzeczywistego i dwukierunkowej komunikacji między serwerami a klientami.