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 ανοίγει δυνατότητες δημιουργίας εφαρμογών σε πραγματικό χρόνο και αμφίδρομης επικοινωνίας μεταξύ διακομιστών και πελατών.