Integrando WebSocket -se Flask e FastAPI

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.