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.