Integrering WebSocket i Flask og FastAPI

WebSocket er en kraftig teknologi for å etablere toveis sanntidskommunikasjonskanaler mellom servere og klienter. Nedenfor er en guide for hvordan du integrerer WebSocket i to populære rammeverk, Flask og FastAPI.

Integrering WebSocket i Flask

Trinn 1: Installer biblioteker

Først må du installere bibliotekene flask og flask-socketio ved å bruke følgende kommando:

pip install Flask flask-socketio

Trinn 2: Konfigurer applikasjonen

Her er et eksempel på hvordan du integrerer WebSocket i en Flask applikasjon:

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 kodebiten ovenfor bruker vi biblioteket flask-socketio til å lage en WebSocket server. Funksjonen handle_message kalles når en klient sender en melding, og serveren svarer ved å sende ut en response hendelse.

Integrering WebSocket i FastAPI

Trinn 1: Installer biblioteker

Installer bibliotekene fastapi og uvicorn ved å bruke følgende kommando:

pip install fastapi uvicorn

Trinn 2: Konfigurer applikasjonen

Her er et eksempel på hvordan du integrerer WebSocket i en FastAPI applikasjon:

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 kodebiten ovenfor bruker vi FastAPI til å lage en WebSocket server. Funksjonen websocket_endpoint aksepterer WebSocket tilkoblinger, lytter etter data sendt av klienter og svarer ved å sende data tilbake til klienten.

Konklusjon

Integrering WebSocket i populære rammeverk som Flask og FastAPI åpner opp muligheter for å lage sanntidsapplikasjoner og toveis kommunikasjon mellom servere og klienter.