WebSocket là một công nghệ mạnh mẽ để thiết lập kênh giao tiếp hai chiều thời gian thực giữa máy chủ và máy khách. Dưới đây là hướng dẫn về cách tích hợp WebSocket vào hai framework phổ biến là Flask và FastAPI.
Tích hợp WebSocket vào Flask
Bước 1: Cài đặt thư viện
Trước hết, bạn cần cài đặt thư viện flask
và flask-socketio
bằng cách sử dụng lệnh sau:
pip install Flask flask-socketio
Bước 2: Thiết lập ứng dụng
Dưới đây là ví dụ về cách tích hợp WebSocket vào ứng dụng 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)
Trong đoạn mã trên, chúng ta sử dụng thư viện flask-socketio
để tạo máy chủ WebSocket. Hàm handle_message
được gọi khi máy khách gửi một tin nhắn, sau đó máy chủ phản hồi bằng cách gửi một sự kiện response
.
Tích hợp WebSocket vào FastAPI
Bước 1: Cài đặt thư viện
Cài đặt thư viện fastapi
và uvicorn
bằng cách sử dụng lệnh sau:
pip install fastapi uvicorn
Bước 2: Thiết lập ứng dụng
Dưới đây là ví dụ về cách tích hợp WebSocket vào ứng dụng 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}")
Trong đoạn mã trên, chúng ta sử dụng FastAPI để tạo máy chủ WebSocket. Hàm websocket_endpoint
chấp nhận kết nối WebSocket và lắng nghe dữ liệu gửi từ máy khách, sau đó phản hồi bằng cách gửi dữ liệu về máy khách.
Kết Luận
Tích hợp WebSocket vào các framework phổ biến như Flask và FastAPI mở ra khả năng tạo các ứng dụng thời gian thực và giao tiếp hai chiều giữa máy chủ và máy khách.