Интеграция 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 открывает возможности для создания приложений реального времени и двунаправленной связи между серверами и клиентами.