2

我的数据库中有很多用户。我希望能够通过 websockets 向他们发送消息,即使他们没有连接。每当我向离线用户发送消息时 - 我希望将消息排队等待他连接,然后将所有消息推送给他。

类似的东西:

template.convertAndSendToUser(
                              "user123",
                               queue,
                               hello);

这个功能甚至可能吗?

请记住,我使用 activeMQ 作为我的消息总线。(消息代理)。我上面描述的功能是 jms\message queues 中的标准

编辑:我用 activemq 创建了一个应用程序 - 当我向离线用户发送消息时,消息没有入队,它丢失了。有任何想法吗?

谢谢!

4

1 回答 1

0

请看以下内容

系统通常不希望长期离线的持久主题订阅者。原因是代理需要为所述订阅者保留发送到这些主题的所有消息。例如,随着时间的推移,这种消息堆积会耗尽代理存储限制,并导致系统整体变慢。

您始终可以使用 JConsole 或 Web 控制台等管理工具手动取消订阅非活动的持久订阅者,但显然还有更多工作可以帮助管理使用持久订阅者的系统(可能来自他们无法控制的环境)盯着版本 5.6 我们介绍了这方面的一些改进。

这只是一个示例,但您可以使用相同的策略来解决您的问题。

于 2014-05-25T10:59:07.977 回答