Vue d'ensemble
Flask-SocketIO 5.0, publie le 15 mars 2021, passe au protocole Socket.IO 5.x et ajoute le mode asynchrone natif.
Fonctionnalites principales
Protocole Socket.IO 5.x
Flask-SocketIO 5.0 adopte le protocole Socket.IO 5 qui ameliore la fiabilite des connexions, le support binaire et la gestion des reconnexions.
python
from flask import Flask
from flask_socketio import SocketIO, emit
app = Flask(__name__)
socketio = SocketIO(app, cors_allowed_origins='*')
@socketio.on('message')
def gerer_message(data):
print(f'Message recu : {data}')
emit('response', {'reponse': 'Message recu !'})
@socketio.on('connect')
def gerer_connexion():
print('Client connecte')
emit('bienvenue', {'message': 'Connexion etablie'})
# socketio.run(app, host='0.0.0.0', port=5000)
Mode asynchrone
Le mode async natif permet d'utiliser async/await dans les gestionnaires d'evenements, ameliorant les performances pour les connexions concurrentes.
python
from flask import Flask
from flask_socketio import SocketIO, emit
app = Flask(__name__)
socketio = SocketIO(app, async_mode='eventlet')
@socketio.on('traitement')
def traitement_long(data):
"""Traitement avec emission progressive."""
import time
for i in range(5):
time.sleep(1)
emit('progression', {'etape': i + 1, 'total': 5})
emit('termine', {'resultat': 'OK'})
# Modes async supportes : eventlet, gevent, threading
