WebSocket é uma poderosa tecnologia para estabelecer canais de comunicação bidirecionais em tempo real entre servidores e clientes. Abaixo está um guia sobre como integrar WebSocket em duas estruturas populares, Flask e FastAPI.
Integrando WebSocket em Flask
Etapa 1: instalar bibliotecas
Em primeiro lugar, você precisa instalar as bibliotecas flask
e flask-socketio
usando o seguinte comando:
pip install Flask flask-socketio
Etapa 2: configurar o aplicativo
Aqui está um exemplo de como integrar WebSocket em um Flask aplicativo:
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)
No trecho de código acima, usamos a flask-socketio
biblioteca para criar um WebSocket servidor. A handle_message
função é chamada quando um cliente envia uma mensagem e o servidor responde emitindo um response
evento.
Integrando WebSocket em FastAPI
Etapa 1: instalar bibliotecas
Instale as fastapi
bibliotecas e uvicorn
usando o seguinte comando:
pip install fastapi uvicorn
Etapa 2: configurar o aplicativo
Aqui está um exemplo de como integrar WebSocket em um FastAPI aplicativo:
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}")
No trecho de código acima, usamos FastAPI para criar um WebSocket server. A websocket_endpoint
função aceita WebSocket conexões, escuta dados enviados por clientes e responde enviando dados de volta ao cliente.
Conclusão
A integração WebSocket em estruturas populares como Flask e FastAPI abre possibilidades para a criação de aplicativos em tempo real e comunicação bidirecional entre servidores e clientes.