WebSocket to potężna technologia do tworzenia dwukierunkowych kanałów komunikacji w czasie rzeczywistym między serwerami a klientami. Poniżej znajduje się przewodnik dotyczący integracji WebSocket z dwoma popularnymi frameworkami Flask oraz platformą FastAPI.
Integracja WebSocket w Flask
Krok 1: Zainstaluj biblioteki
Najpierw musisz zainstalować biblioteki flask
i flask-socketio
za pomocą następującego polecenia:
pip install Flask flask-socketio
Krok 2: Skonfiguruj aplikację
Oto przykład integracji WebSocket z Flask aplikacją:
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)
W powyższym fragmencie kodu używamy biblioteki flask-socketio
do stworzenia WebSocket serwera. Funkcja handle_message
jest wywoływana, gdy klient wysyła wiadomość, a serwer odpowiada, emitując zdarzenie response
.
Integracja WebSocket w FastAPI
Krok 1: Zainstaluj biblioteki
Zainstaluj biblioteki fastapi
i uvicorn
za pomocą następującego polecenia:
pip install fastapi uvicorn
Krok 2: Skonfiguruj aplikację
Oto przykład integracji WebSocket z FastAPI aplikacją:
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}")
W powyższym fragmencie kodu używamy FastAPI do utworzenia WebSocket serwera. Funkcja websocket_endpoint
akceptuje WebSocket połączenia, nasłuchuje danych wysyłanych przez klientów i odpowiada wysyłając dane z powrotem do klienta.
Wniosek
Integracja WebSocket z popularnymi frameworkami takimi jak Flask i FastAPI otwiera możliwości tworzenia aplikacji czasu rzeczywistego i dwukierunkowej komunikacji między serwerami a klientami.