【问题标题】:How can I know if the message was delivered to a queue?我如何知道消息是否已发送到队列?
【发布时间】:2020-10-24 02:03:37
【问题描述】:

我正在使用stomp-client 库,我想知道是否可以知道消息是否已传递到队列。因为我实现了一个 java 服务来执行消息的出队和一个节点 js 来将消息发送到队列。下面的代码显示了我如何将消息发送到队列。

this._stompClient.publish('/queue/MessagesQueue', messageToPublish, { })

【问题讨论】:

    标签: node.js activemq stomp


    【解决方案1】:

    当您发送SEND 帧(即发布消息)时,您可以添加receipt 标头,然后当您从代理收到RECEIPT 帧时,您就知道它已成功接收到消息。 STOMP specification 说明了 receipt 标头:

    CONNECT 之外的任何客户端框架都可以指定具有任意值的receipt 标头。这将导致服务器确认收到带有RECEIPT 帧的帧,该帧包含此标头的值作为RECEIPT 帧中receipt-id 标头的值。

    但是,查看stomp-client 的文档,我没有看到任何关于如何接收RECEIPT 帧的信息。我实际上希望能够在收到RECEIPT 帧时调用的publish 方法上指定回调。 stomp-client 似乎不支持使用收据。不幸的是,这意味着没有真正的方法来确认代理是否收到了消息。

    我建议你找一个更成熟的支持收据的 STOMP 客户端实现。例如stomp-js 支持receipts

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-12
      • 2012-06-28
      • 2016-09-16
      • 2020-03-14
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 2013-08-19
      相关资源
      最近更新 更多