WebSocket je moćna tehnologija za uspostavljanje dvosmjernih komunikacijskih kanala u stvarnom vremenu između poslužitelja i klijenata. U nastavku je vodič o tome kako se integrirati WebSocket u dva popularna okvira Flask i FastAPI.
Integriranje WebSocket u Flask
Korak 1: Instalirajte biblioteke
Prvo morate instalirati biblioteke flask
i flask-socketio
pomoću sljedeće naredbe:
pip install Flask flask-socketio
Korak 2: Postavite aplikaciju
Evo primjera kako se integrirati WebSocket u Flask aplikaciju:
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)
U gornjem isječku koda koristimo biblioteku flask-socketio
za stvaranje WebSocket poslužitelja. Funkcija handle_message
se poziva kada klijent pošalje poruku, a poslužitelj odgovori emitiranjem događaja response
.
Integriranje WebSocket u FastAPI
Korak 1: Instalirajte biblioteke
Instalirajte biblioteke fastapi
i uvicorn
pomoću sljedeće naredbe:
pip install fastapi uvicorn
Korak 2: Postavite aplikaciju
Evo primjera kako se integrirati WebSocket u FastAPI aplikaciju:
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}")
U gornjem isječku koda koristimo se FastAPI za stvaranje WebSocket poslužitelja. Funkcija websocket_endpoint
prihvaća WebSocket veze, sluša podatke koje šalju klijenti i odgovara slanjem podataka natrag klijentu.
Zaključak
Integracija WebSocket u popularne okvire poput Flask i FastAPI otvara mogućnosti za kreiranje aplikacija u stvarnom vremenu i dvosmjernu komunikaciju između poslužitelja i klijenata.