如何在spring websockets中查找订阅主题的所有用户

时间:2014-07-17 05:12:10

标签: spring stomp spring-websocket

使用Spring Websockets创建类似聊天应用程序的东西时,了解所有订阅主题的人都很有用。例如,对于客户端中显示的状态数据。

我知道我可以实现ApplicationListener并保留我自己的"连接用户列表#34;但似乎图书馆必须已经在做这项工作。

直接从库中获取有效订阅信息的推荐方法是什么(并且不在内存或数据库中维护我自己的列表)。

1 个答案:

答案 0 :(得分:3)

你是对的,你可以使用ApplicationContext events,但不幸的是,这些事件涉及用户会话事件和经纪人事件 - 所以当用户订阅特定主题时你不会得到通知。

通过获取SimpleBrokerMessageHandler,您可以在使用SubscriptionRegistry时执行此操作。但同样,SimpleMessageBroker不能用于生产。

如果您正在使用RabbitMQ,则可以从其REST API获取该信息。

问题是,这对于代理实现非常具体,所以我想知道在Spring Framework中这样的功能是否有意义。你可以打开JIRA issue开始讨论吗?