WebSocket er en kraftfuld teknologi til etablering af tovejs kommunikationskanaler i realtid mellem servere og klienter. Nedenfor er en guide til, hvordan man integrerer WebSocket i to populære rammer, Flask og FastAPI.
Integrering WebSocket i Flask
Trin 1: Installer biblioteker
For det første skal du installere bibliotekerne flask
og flask-socketio
ved hjælp af følgende kommando:
pip install Flask flask-socketio
Trin 2: Konfigurer applikationen
Her er et eksempel på, hvordan man integrerer 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 kodestykket ovenfor bruger vi biblioteket flask-socketio
til at oprette en WebSocket server. Funktionen handle_message
kaldes, når en klient sender en besked, og serveren svarer ved at udsende en response
hændelse.
Integrering WebSocket i FastAPI
Trin 1: Installer biblioteker
Installer bibliotekerne fastapi
og uvicorn
ved hjælp af følgende kommando:
pip install fastapi uvicorn
Trin 2: Konfigurer applikationen
Her er et eksempel på, hvordan man integrerer 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 kodestykket ovenfor bruger vi FastAPI til at oprette en WebSocket server. Funktionen websocket_endpoint
accepterer WebSocket forbindelser, lytter efter data sendt af klienter og svarer ved at sende data tilbage til klienten.
Konklusion
Integrering WebSocket i populære rammer som Flask og FastAPI åbner op for muligheder for at skabe realtidsapplikationer og tovejskommunikation mellem servere og klienter.