RabbitMQ - 访问通过 AMQP 上的 STOMP 创建的 /queue 或 /topic

lig*_*303 2 stomp amqp rabbitmq

我有一个场景,客户端通过 STOMP 将消息发布到 RabbitMQ/queue/topic目标。

另一方面,我有一个通过 AMQP 连接到 RabbitMQ 的服务器进程。是否可以从 AMQP 访问“STOMP 通道”,或者它们是否被隔离到自己的命名空间中?

看起来 AMQP 通道可以通过 STOMP 访问,/amq/queue/但我没有找到另一个方向的案例。

lig*_*303 5

我通过使用 Rabbit Web 管理员并仔细查看 Spring-Stomp over Websocket 实现在后台实际执行的操作找到了答案。

/topic命名空间由每注册跺脚连接的客户端,使用主题名称对路由密钥的自动删除队列实现amq.topic交换。因此,要从非 Stomp 客户端收听这些消息,您也必须这样做。

/queue命名空间是通过创建一个(持久)队列和注册从默认空“”交换到所述队列的结合来实现。要使用消息,您可以直接使用队列 - 并将消息发送到队列,您需要将消息发送到空交换器,并将路由键设置为队列名称。