我的情况是这样的:
我有多个网络服务器:
- 需要与后端通信(
IBus.Publish/IBus.Subscribe
) - 需要相互交流(
IBus.Publish/IBus.Subscribe
)
除了网络服务器之外,我还有许多使用相同消息的 Windows 服务。
为了完成这项工作,我让网络服务器将消息发送到中央集线器,唯一的响应是将消息包装在新的消息类型中并将其发布给所有订阅者。
我能以某种方式避免这种情况,所以我可以直接从网络服务器发布消息吗?
编辑(添加了一些代码) - 当前情况:
... WebServer
_bus.Send(new Message{Body="SomethingChanged"});
... Hub
public void Handle(Message message){
_bus.Publish(new WrappedMessage{Message = message})
}
... Handlers (WebServers, WindowsServices etc)
public void Handle(WrappedMessage message){
//Actually do important stuff
}
通缉情况:
... WebServer
_bus.Publish(new Message{Body="SomethingChanged"};
... Handlers (WebServers, WindowsServices etc)
public void Handle(Message message){
//Do important stuff
}