使用JMS,有没有办法在间歇性断开连接的客户端上存储消息,并在网络可用时将它们转发给代理?

我正在考虑一种架构,我的客户端间歇性地连接到网络。 我希望在网络不可用时将在这些客户端上创建的消息存储在JMS队列中,并在客户端在网络上时将这些消息转发到中央消息代理。 (用户可以控制网络,例如拨入,因此不像手机那样间歇性连接。)

是否有任何提供此function的JMS实现?

您可以将activeMQ代理嵌入到您的应用程序中

http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html

然后,我想(没有测试)你可以使用ActiveMQfunction,它允许你使用经纪人function的发现,在经纪人的网络上发送消息,

http://activemq.apache.org/clustering.html

或者只是通过添加队列使用者服务器端,然后通过此使用者通过其他代理调度。

希望能帮助到你。

Glassfish Open Message Queue可以在4.4版中嵌入(或独立运行)(支持代理与任何客户端“进行中”运行的能力)。 它非常轻量级,并且将支持其他客户端语言而不是4.4版本的STOMP协议 – 除了Java和C. – https://mq.dev.java.net/4.4.html