使用Spring Websockets创建类似聊天应用程序的东西时,了解所有订阅主题的人都很有用。例如,对于客户端中显示的状态数据。
我知道我可以实现ApplicationListener并保留我自己的"连接用户列表#34;但似乎图书馆必须已经在做这项工作。
直接从库中获取有效订阅信息的推荐方法是什么(并且不在内存或数据库中维护我自己的列表)。
答案 0 :(得分:3)
你是对的,你可以使用ApplicationContext events,但不幸的是,这些事件涉及用户会话事件和经纪人事件 - 所以当用户订阅特定主题时你不会得到通知。
通过获取SimpleBrokerMessageHandler,您可以在使用SubscriptionRegistry时执行此操作。但同样,SimpleMessageBroker不能用于生产。
如果您正在使用RabbitMQ,则可以从其REST API获取该信息。
问题是,这对于代理实现非常具体,所以我想知道在Spring Framework中这样的功能是否有意义。你可以打开JIRA issue开始讨论吗?