Integriranje WebSocket u Flask i FastAPI

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.