Ενσωμάτωση WebSocket σε Flask και FastAPI

WebSocket είναι μια ισχυρή τεχνολογία για τη δημιουργία αμφίδρομων καναλιών επικοινωνίας σε πραγματικό χρόνο μεταξύ διακομιστών και πελατών. Παρακάτω είναι ένας οδηγός για τον τρόπο ενσωμάτωσης WebSocket σε δύο δημοφιλή πλαίσια Flask και FastAPI.

Ενσωμάτωση WebSocket σε Flask

Βήμα 1: Εγκατάσταση βιβλιοθηκών

Αρχικά, πρέπει να εγκαταστήσετε τις βιβλιοθήκες flask και flask-socketio χρησιμοποιώντας την ακόλουθη εντολή:

pip install Flask flask-socketio

Βήμα 2: Ρυθμίστε την εφαρμογή

Ακολουθεί ένα παράδειγμα για τον τρόπο ενσωμάτωσης WebSocket σε μια 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)  

Στο παραπάνω απόσπασμα κώδικα, χρησιμοποιούμε τη flask-socketio βιβλιοθήκη για να δημιουργήσουμε έναν WebSocket διακομιστή. Η handle_message συνάρτηση καλείται όταν ένας πελάτης στέλνει ένα μήνυμα και ο διακομιστής αποκρίνεται εκπέμποντας ένα response συμβάν.

Ενσωμάτωση WebSocket σε FastAPI

Βήμα 1: Εγκατάσταση βιβλιοθηκών

Εγκαταστήστε τις βιβλιοθήκες fastapi και uvicorn χρησιμοποιώντας την ακόλουθη εντολή:

pip install fastapi uvicorn

Βήμα 2: Ρυθμίστε την εφαρμογή

Ακολουθεί ένα παράδειγμα για τον τρόπο ενσωμάτωσης WebSocket σε μια 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}")

Στο παραπάνω απόσπασμα κώδικα, χρησιμοποιούμε FastAPI για να δημιουργήσουμε έναν WebSocket διακομιστή. Η websocket_endpoint λειτουργία δέχεται WebSocket συνδέσεις, ακούει δεδομένα που αποστέλλονται από τους πελάτες και αποκρίνεται στέλνοντας δεδομένα πίσω στον πελάτη.

συμπέρασμα

Η ενσωμάτωση WebSocket σε δημοφιλή πλαίσια όπως Flask και FastAPI ανοίγει δυνατότητες δημιουργίας εφαρμογών σε πραγματικό χρόνο και αμφίδρομης επικοινωνίας μεταξύ διακομιστών και πελατών.