0

我正在使用活动 mq 实现作为 stomp 服务器/代理来使用 stomp 协议。我想有一个 stomp 客户端的消息队列,可以在客户端离线时填充,这样当客户端不时连接时,它可以获取离线时已经存放的消息。

正如我所读到的,这可以通过简单订阅或持久订阅来实现。我决定持久订阅。这是正确的方法吗?

然后我想知道我应该在客户端使用哪些消息和标头。实际上我正在使用以下内容

连接

  • 登录:
  • 密码:
  • 客户端 ID:some_mac_adr

订阅

  • 目的地:/queue/some_mac_adr
  • 收据:收据-msg
  • 持久订阅者名称:默认

现在等待消息

超时 -->

断开

此消息序列是否正确?此外,我没有使用取消订阅命令。这也正确吗?

4

1 回答 1

1

我决定持久订阅。这是正确的方法吗?

默认情况下,队列是持久的,因此您不必显式地使消费者持久。

关于标头,正如我所说,由于您不需要使消费者耐用,因此可以避免传递耐用订阅者名称标头。而且,不确定这是否是偶然的,但您不需要保持队列名称和客户端 ID 相同。

顺便说一句,您使用的是哪种语言?不同语言的 STOMP 实现应该注意合理的默认值,因此您无需担心 CONNECT、SUBSCRIBE 等的标头。

此外,我没有使用取消订阅命令。这也正确吗?

同样, unsubscribe() 对队列没有太大影响,但是当消费者完成其工作时取消订阅会更干净。

我希望这对你的案子有帮助。

于 2012-05-24T10:46:11.920 回答