WebSocket je zmogljiva tehnologija za vzpostavitev dvosmernih komunikacijskih kanalov v realnem času med strežniki in odjemalci. Spodaj je vodnik o integraciji WebSocket v dva priljubljena okvira Flask in FastAPI.
Vključevanje WebSocket v Flask
1. korak: Namestite knjižnice
Najprej morate namestiti knjižnice flask
in flask-socketio
z naslednjim ukazom:
pip install Flask flask-socketio
2. korak: Nastavite aplikacijo
Tu je primer integracije WebSocket v Flask aplikacijo:
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)
V zgornjem delčku kode uporabljamo knjižnico flask-socketio
za ustvarjanje WebSocket strežnika. Funkcija handle_message
se pokliče, ko odjemalec pošlje sporočilo, strežnik pa se odzove z oddajanjem response
dogodka.
Vključevanje WebSocket v FastAPI
1. korak: Namestite knjižnice
Namestite knjižnice fastapi
in uvicorn
z naslednjim ukazom:
pip install fastapi uvicorn
2. korak: Nastavite aplikacijo
Tu je primer integracije WebSocket v FastAPI aplikacijo:
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}")
V zgornjem delčku kode, ki ga uporabljamo FastAPI za ustvarjanje WebSocket strežnika. Funkcija websocket_endpoint
sprejema WebSocket povezave, posluša podatke, ki jih pošljejo odjemalci, in se odzove s pošiljanjem podatkov nazaj odjemalcem.
Zaključek
Integracija WebSocket v priljubljena ogrodja, kot je Flask in, FastAPI odpira možnosti za ustvarjanje aplikacij v realnem času in dvosmerno komunikacijo med strežniki in odjemalci.