我正在尝试在 F# 中开发多代理应用程序。这是我正在尝试做的事情:
创建几个代理(比如 100 个)。
让这些代理使用事件异步地相互通信。
但是,要求是这些代理中的每一个都不应相互了解。
上述要点的本质是,对于一个代理(比如 A1,在这种情况下是发布者)发送事件给另一个代理(比如 A2,他是订阅者),代理 A2 需要实例化A1 以接收来自的通知它。F# 中的事件框架和响应式扩展 (Rx)都遵循这种实例化方法。
我正在寻找的是基于 F# 的事件代理框架/中间件,它允许代理订阅事件而无需实例化发布该事件的代理。即代理不了解系统中的其他代理。他们只知道存在的事件列表,并从该列表订阅(一个或多个)事件。在接收到订阅的事件时,代理调用其方法之一。
我能想到的一种解决方案是事件聚合器模式(例如在 Prism 中)。但是还没有看到这种模式的任何 F# 实现。
任何参考/指针将不胜感激。提前致谢。