Middlewares¶
Los middlewares trabajan entre los canales maestros y los canales esclavos. Ellos examinan los mensajes y estados enviados entre cada canal, los pasan entre ellos, les hacen cambios o los descartan.
Como los canales, los middlewares también tienen una instancia por cada sesión EFB. administrada por el coordinador. Sin embargo, ellos no tienen threads de sondeo centrales, lo que significa que si un middleware necesita tener un thread de sondeo o algo similar corriendo en segundo plano, tendrá que detener el thread usando atexit
en Python.
Procesando el mensaje y el estado¶
Each middleware by default has 2 methods, process_message()
which processes message objects, and process_status()
which processes status objects. If they are not overridden,
they will not touch on the object and pass it on as is.
To modify an object, just override the relative method and
make changes to it. To discard an object, simply return None
.
When an object is discarded, it will not be passed further
to other middlewares or channels, which means a middleware
or a channel will never receive a None
message or
status.
Otros usos¶
Teniendo un poco más limitaciones en comparación con los canales, los middlewares son más fáciles de escribir, lo que les permite hacer más que simplemente interceptar los mensajes y estados.
Algunas ideas:
Emisión periódica a los canales maestros y esclavos
Integración a los bots de chats
Operaciones automáticas en los comandos específicos de vendedor o en las funciones adicionales
Comparte información de la sesión de usuario desde un canal esclavo a otros programas
etc…
Implementation details¶
See Middleware
.