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