Integration WebSocket in Flask und FastAPI

WebSocket ist eine leistungsstarke Technologie zum Aufbau bidirektionaler Echtzeit-Kommunikationskanäle zwischen Servern und Clients. Nachfolgend finden Sie eine Anleitung zur Integration WebSocket in zwei gängige Frameworks: Flask und FastAPI.

Integrieren WebSocket in Flask

Schritt 1: Bibliotheken installieren

Zunächst müssen Sie die Bibliotheken flask und flask-socketio mit dem folgenden Befehl installieren:

pip install Flask flask-socketio

Schritt 2: Richten Sie die Anwendung ein

Hier ist ein Beispiel für die Integration WebSocket in eine Flask Anwendung:

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)  

Im obigen Codeausschnitt verwenden wir die flask-socketio Bibliothek, um einen WebSocket Server zu erstellen. Die handle_message Funktion wird aufgerufen, wenn ein Client eine Nachricht sendet und der Server antwortet, indem er ein response Ereignis ausgibt.

Integrieren WebSocket in FastAPI

Schritt 1: Bibliotheken installieren

Installieren Sie die fastapi und- uvicorn Bibliotheken mit dem folgenden Befehl:

pip install fastapi uvicorn

Schritt 2: Richten Sie die Anwendung ein

Hier ist ein Beispiel für die Integration WebSocket in eine FastAPI Anwendung:

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

Im obigen Codeausschnitt FastAPI erstellen wir einen WebSocket Server. Die websocket_endpoint Funktion akzeptiert WebSocket Verbindungen, lauscht auf von Clients gesendete Daten und sendet als Antwort Daten an den Client zurück.

Abschluss

Die Integration WebSocket in gängige Frameworks wie Flask und FastAPI eröffnet Möglichkeiten zur Erstellung von Echtzeitanwendungen und zur bidirektionalen Kommunikation zwischen Servern und Clients.