我有一个场景,客户通过STOMP将消息发布到RabbitMQ /queue
或/topic
目的地。
另一方面,我有一个服务器进程,通过AMQP连接到RabbitMQ。是否可以从AMQP访问“STOMP-channels”,还是将它们隔离到自己的名称空间?
看起来AMQP频道可以通过/amq/queue/
从STOMP访问,但我找不到另一个方向的情况。
答案 0 :(得分:1)
我通过使用Rabbit Web管理员找到了答案,并仔细研究了Spring-Stomp over Websocket实现在后台实际执行的操作。
/topic
命名空间是通过为每个连接的stomp客户端注册一个自动删除队列来实现的,该客户端使用amq.topic
交换机上主题名称的路由密钥。因此,要从非Stomp客户端收听这些消息,您必须这样做。
/queue
命名空间是通过创建(持久)队列并从默认空""注册绑定来实现的。交换到队列。要使用消息,您可以直接使用队列 - 并且要将消息发送到队列,您将向路由密钥设置为队列名称的空交换发送消息。