socketio
voir dans python/lvsio/perso/new
install
python3 -m pip install "uvicorn[standard]
gunicorn
python3 -m pip install python-socketio
python3 -m pip install aiohttp
lancement :
uvicorn --reload async_app:app
----------
en mode py4web (ass)
controller : ne fait rien de spécial. pas de socketio client ou serveur.
template/index.html :
- etablit la connexion entre le browser et le serveur asynchrone donc si on veut pouvoir acceder au serveur depuis un browser situé sur une autre machine que le serveur il ne fait pas utiliser localhost:port mais le nom réseau du serveur
- on a la partie interactive sous forme de message
- pour chaque action pilotée par message on a l'équivalent action coté serveur
- L'action qui déclenche est le connect
- importer la library js de socket io (<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.3.1/socket.io.min.js"></script>)
- Verifier la cohérence de version avec le serveur
sur le serveur async :
- important : parametrer la sécurité CORS dans le constructeur du serveur
sio = socketio.AsyncServer(async_mode='asgi',cors_allowed_origins="*")
action serveur
@sio.event
async def allo(sid, data):
#result = data['numbers'][0] + data['numbers'][1]
tumasdit=data['msg']
print (tumasdit)
await sio.emit('msg_verlan', {'enverlan': tumasdit[::-1]}, )
action client
sio.on('msg_verlan', (data) => {
console.log(data);
document.getElementById("me").value=data['enverlan'];
});
le pivot c'est l'id du message : msg_verlan
Pour les taches lancées depuis l'exterieur :
2 approches sont possibles
1/ on parle avec un client au serveur socketio
dans ce cas on on fait un emit sur socketio
et l'evenement est traité par le serveur
il est trappé soit par le nom de l'evenement si on met @sio.on('nom de levent')
soit par le nom de la fonction si on ne met que @sio.event
voir exemple C1.py dans perso/new
2/ on parle avec un redis qui sert d'intermédiaire.
dans ce cas on on fait un emit sur redis qui publie directement aux clients enregistrés
voir exemple C2.py dans perso/new
888 Casino New Jersey | Get the Best Rates - JTGH
ReplyDelete888 광주 출장샵 Casino New 청주 출장마사지 Jersey. 군포 출장샵 Hotel, NJ. Address: 908 E. Main Street. New 포천 출장안마 Jersey, United States. Year Built: 1980. Casino Type: Casino. 계룡 출장마사지