Java

InMemoryMessageDispatcher

单例内存消息分发器,用于将 MessagePack 对象按通道路由到已注册的处理器。此类替代了原始 InMemoryTransport 实现中使用的 .NET StrongReferenceMessenger / WeakReferenceMessenger 模式。处理器以强引用方式存储——调用者负责在不再需要处理器时取消注册。
  • Type: final class
  • Package: com.euonia.bus
  • Author: damon(zhaorong@outlook.com)

Fields

Name Type Modifiers Description
INSTANCE InMemoryMessageDispatcher private static final 单例实例。
channelHandlers Map<String, List<Consumer<MessagePack>>> private final 按通道存储的处理器列表。

Methods

Name Return Type Parameters Description
getInstance InMemoryMessageDispatcher 获取单例分发器实例。
register void String channel, Consumer<MessagePack> handler 为指定通道注册一个处理器。
unregister void String channel, Consumer<MessagePack> handler 从指定通道取消注册一个处理器。
dispatch void MessagePack pack 将消息包分发到该消息对应通道的所有已注册处理器。每个处理器都会被同步调用。如果处理器抛出异常,该异常会传播给调用者。
reset void 移除所有通道的所有已注册处理器。