WebSocket är en kraftfull teknik för att etablera dubbelriktade realtidskommunikationskanaler mellan servrar och klienter. Nedan finns en guide om hur man integrerar WebSocket i två populära ramverk, Flask och FastAPI.
Integreras WebSocket i Flask
Steg 1: Installera bibliotek
Först måste du installera biblioteken flask
och flask-socketio
med följande kommando:
pip install Flask flask-socketio
Steg 2: Konfigurera programmet
Här är ett exempel på hur man integrerar WebSocket i en Flask applikation:
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)
I kodavsnittet ovan använder vi flask-socketio
biblioteket för att skapa en WebSocket server. Funktionen handle_message
anropas när en klient skickar ett meddelande och servern svarar genom att sända en response
händelse.
Integreras WebSocket i FastAPI
Steg 1: Installera bibliotek
Installera biblioteken fastapi
och uvicorn
med följande kommando:
pip install fastapi uvicorn
Steg 2: Konfigurera programmet
Här är ett exempel på hur man integrerar WebSocket i en FastAPI applikation:
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}")
I kodavsnittet ovan använder vi FastAPI för att skapa en WebSocket server. Funktionen websocket_endpoint
accepterar WebSocket anslutningar, lyssnar efter data som skickas av klienter och svarar genom att skicka tillbaka data till klienten.
Slutsats
Integrering WebSocket i populära ramverk som Flask och FastAPI öppnar upp möjligheter för att skapa realtidsapplikationer och dubbelriktad kommunikation mellan servrar och klienter.