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
.