WebSocket es una poderosa tecnología para establecer canales de comunicación bidireccionales en tiempo real entre servidores y clientes. A continuación se muestra una guía sobre cómo integrarse WebSocket en dos marcos populares Flask y FastAPI.
integrando WebSocket en Flask
Paso 1: instalar bibliotecas
En primer lugar, debe instalar las bibliotecas flask
y flask-socketio
con el siguiente comando:
pip install Flask flask-socketio
Paso 2: configurar la aplicación
He aquí un ejemplo de cómo integrar WebSocket en una Flask aplicación:
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)
En el fragmento de código anterior, usamos la flask-socketio
biblioteca para crear un WebSocket servidor. La handle_message
función se llama cuando un cliente envía un mensaje y el servidor responde emitiendo un response
evento.
integrando WebSocket en FastAPI
Paso 1: instalar bibliotecas
Instale las bibliotecas fastapi
y uvicorn
usando el siguiente comando:
pip install fastapi uvicorn
Paso 2: configurar la aplicación
He aquí un ejemplo de cómo integrar WebSocket en una FastAPI aplicación:
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}")
En el fragmento de código anterior, usamos FastAPI para crear un WebSocket servidor. La websocket_endpoint
función acepta WebSocket conexiones, escucha los datos enviados por los clientes y responde enviando datos al cliente.
Conclusión
La integración WebSocket en marcos populares como Flask y FastAPI abre posibilidades para crear aplicaciones en tiempo real y comunicación bidireccional entre servidores y clientes.