WebSocket on tehokas tekniikka kaksisuuntaisten reaaliaikaisten viestintäkanavien luomiseen palvelimien ja asiakkaiden välille. Alla on opas, kuinka integroida WebSocket kahteen suosittuun kehykseen Flask ja FastAPI.
Integroituminen WebSocket _ Flask
Vaihe 1: Asenna kirjastot
Ensinnäkin sinun on asennettava flask
ja flask-socketio
kirjastot käyttämällä seuraavaa komentoa:
pip install Flask flask-socketio
Vaihe 2: Määritä sovellus
Tässä on esimerkki WebSocket sovellukseen integroinnista Flask:
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)
Yllä olevassa koodinpätkässä käytämme kirjastoa flask-socketio
palvelimen luomiseen WebSocket. Toimintoa handle_message
kutsutaan, kun asiakas lähettää viestin, ja palvelin vastaa lähettämällä tapahtuman response
.
Integroituminen WebSocket _ FastAPI
Vaihe 1: Asenna kirjastot
Asenna fastapi
ja uvicorn
kirjastot käyttämällä seuraavaa komentoa:
pip install fastapi uvicorn
Vaihe 2: Määritä sovellus
Tässä on esimerkki WebSocket sovellukseen integroinnista FastAPI:
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}")
Yllä olevassa koodinpätkässä käytämme FastAPI palvelimen luomiseen WebSocket. Toiminto websocket_endpoint
hyväksyy WebSocket yhteydet, kuuntelee asiakkaiden lähettämiä tietoja ja vastaa lähettämällä tietoja takaisin asiakkaalle.
Johtopäätös
Integroituminen WebSocket suosittuihin kehyksiin, kuten Flask ja FastAPI avaa mahdollisuuksia luoda reaaliaikaisia sovelluksia ja kaksisuuntaista viestintää palvelimien ja asiakkaiden välillä.