中间件¶
在消息与状态传递的过程中,中间件位于主端与从端之间,按启用顺序依次对所有消息和状态进行监听、修改或拦截。
与信道一样,所有中间件也在 EFB 配置中拥有一个实例,并由协调器进行管理。然而,他们没有集中轮询线程,也就是说如果中间件想要在后台运行轮询线程或类似的线程,这些线程必须通过 Python 的 atexit
或其他方式停止。
消息和状态处理¶
默认情况下,每个中间件都有两个方法:process_message()
处理消息对象,以及 process_status()
处理状态对象。这两个方法默认继承的行为是不对传入的消息或状态进行更改。
要修改对象,只需要覆盖相应的方法,并该对象它进行修改。 要拦截一个对象,只需返回 None
。对象被拦截后,它不会被传递到其他中间件或信道,也就是说中间件和信道都不应收到 None
消息或状态。
其他用法¶
中间件与通道相比限制较少,因此相对容易编写。进而中间件能够做到的不仅仅是截取消息和状态。
例如:
定期向主端、从端群发消息
集成聊天机器人(chat bot)功能
面向供应商特定指令和附加功能的批量操作
将从端的用户登录与外部程序共享
等等……
实现细节¶
请参阅 Middleware
。