RabbitMQ主题格式-主主题下的子主题

RabbitMQ主题格式-主主题下的子主题,rabbitmq,spring-websocket,spring-rabbit,Rabbitmq,Spring Websocket,Spring Rabbit,当我试图以这种格式推送到主题时,/topic/push/{organizationId}我遇到了一个错误 messagingTemplate.convertAndSend("/topic/pushing/" + obj.getCustomerid(), obj); 错误: 15:06:48.901[reactor-tcp-io-1]错误 o、 s.m.s.s.StompBrokerRelayMessageHandler-收到错误 {消息=[无效目标],内容类型=[文本/普通], 版本=[1.0

当我试图以这种格式推送到主题时,/topic/push/{organizationId}我遇到了一个错误

messagingTemplate.convertAndSend("/topic/pushing/" + obj.getCustomerid(), obj);
错误:

15:06:48.901[reactor-tcp-io-1]错误 o、 s.m.s.s.StompBrokerRelayMessageHandler-收到错误 {消息=[无效目标],内容类型=[文本/普通], 版本=[1.0,1.1,1.2],内容长度=[53]}会话=系统 text/plainpayload='/pushing/2963\n'不是有效的主题 目的地

但是,当我将其更改为此格式时,/topic/pushing.{organizationId},将斜杠替换为点,它工作正常:

messagingTemplate.convertAndSend("/topic/pushing." + obj.getCustomerid(), obj);
你知道我如何保留斜杠/并在主主题下有子主题吗

关于话题交流有这样的说法:

主题交换类型的工作方式如下: 1.消息队列使用路由模式P绑定到exchange。 2.发布者使用路由密钥R向exchange发送消息。 3.如果R与P匹配,则将消息传递到消息队列。用于主题交换的路由密钥必须由零或多个组成 用点分隔的单词。每个单词可能包含字母A-Z和A-Z 和数字0-9

路由模式遵循的规则与具有 *匹配单个单词,#匹配零个或多个单词的加法 话。因此,路由模式*.stock.#与路由键匹配 美元.stock和欧元.stock.db,但不是stock.nasdaq

所以“/”在路由键中未被授权,使用的分隔符是一个点。

关于主题交换有这样的说法:

主题交换类型的工作方式如下: 1.消息队列使用路由模式P绑定到exchange。 2.发布者使用路由密钥R向exchange发送消息。 3.如果R与P匹配,则将消息传递到消息队列。用于主题交换的路由密钥必须由零或多个组成 用点分隔的单词。每个单词可能包含字母A-Z和A-Z 和数字0-9

路由模式遵循的规则与具有 *匹配单个单词,#匹配零个或多个单词的加法 话。因此,路由模式*.stock.#与路由键匹配 美元.stock和欧元.stock.db,但不是stock.nasdaq

所以在路由密钥中“/”未被授权,使用的分隔符是一个点