บูรณาการ 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 เปิดโอกาสสำหรับการสร้างแอปพลิเคชันแบบเรียลไทม์และการสื่อสารแบบสองทิศทางระหว่างเซิร์ฟเวอร์และไคลเอนต์