Middlewares

Middleware bekerja di antara saluran induk dan saluran slave, mereka terlihat melalui pesan dan status yang dikirimkan di antara saluran, melewatkannya, membuat perubahan atau membuangnya, satu demi satu.

Seperti saluran, masing-masing middlewares juga memiliki tingkatan per sesi EFB, yang dikelola oleh koordinator. Akan tetapi, mereka tidak memiliki urutan pemungutan suara terpusat, yang berarti jika middleware ingin memiliki urutan pemungutan atau yang serupa berjalan di latar belakang, ia harus menghentikan urutan menggunakan Python Atexit atau sebaliknya.

Pemrosesan Pesan dan Status

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.

Penggunaan lainnya

Mempunyai batasan yang agak sedikit dibandingkan dengan saluran, middlewares lebih mudah untuk ditulis, yang memungkinkannya melakukan lebih dari sekedar mencegat pesan dan status.

Beberapa gagasan:

  • Penyiaran berulang-ulang ke saluran utama / slave

  • Penggabungan dengan bot saluran

  • Operasi otomatis pada perintah khusus vendor / fitur tambahan

  • Membagikan sesi pengguna dari saluran slave dengan program lainnya

  • dll...

Implementation details

See Middleware.