1

我正在使用 node.js 的 stompit 包连接到 AMQ 队列以订阅消息。我使用ConnectFailover类来创建连接和channelPool类来创建池。

我面临的问题是,一旦建立连接并且如果队列中没有消息,那么它就会保持连接。

如果没有要从队列中读取的消息,我需要一种断开连接的方法。我在stompit 文档中看不到任何选项。

4

1 回答 1

1

根据这个问题,STOMP 无法做到这一点。作为一般规则,像 AMQ 这样的代理很少允许消费者检查消息计数等队列属性。

除非您可以从 node.js 代码中以某种方式利用 JMX ,否则最简单的方法是创建一个带有client.disconnect()回调的计时器并等待适合您系统的时间量。每当消费消息时,重置计时器。

于 2019-08-26T01:55:21.013 回答