是否有可能在消息生产者方面获得通知,新订阅者加入了该主题?特别是JBoss Messaging可以吗?
答案 0 :(得分:1)
主题订阅者(消费者)存储在JBoss的TopicSession实现(JBMSession)中的私有字段中。这些类中没有一个提供对该字段的访问方法,因此如果没有黑客攻击(反射),我认为无法解决该问题。
但是如果你可以使用反思并且不介意使用它,那么以下策略可能接近你想要的:
实现JBMSessionObserver 对于TopicSession。这个班 将反映私人集 消费者,跟踪变化 定期(如每1秒钟或 所以)并通知已注册的听众 发送活动。
实施 JBMSessionObserverListener(S), 注册他们 JBMSessionObserver接收更改 事件
您将遇到的下一个问题是,JBMSession仅存储MessageListeners,并且不知道监听器的所有者。监听器没有唯一的密钥或名称。他们只是提供了处理消息的方法。
因此,您可以获得 新侦听器已加入的信息,但您可能无法识别侦听器后面的真实消费者。