当我试图以这种格式( /topic/pushing/{organizationId} )推送主题时,我得到了一个错误
messagingTemplate.convertAndSend("/topic/pushing/" + obj.getCustomerid(), obj);错误:
15:06:48.901反应堆-tcp-io-1错误o.s.m.s.s.StompBrokerRelayMessageHandler -接收错误{message=Invalid目的地,内容-类型=文本/平原,version=1.0,1.1,1.2,内容长度=53} session=system文本/平面有效载荷=‘/推/2963_ent’不是一个有效的主题目的地。
但是,当我将它改为/topic/pushing.{organizationId},格式时,用点代替斜杠,效果很好:
messagingTemplate.convertAndSend("/topic/pushing." + obj.getCustomerid(), obj);是否知道如何保持斜杠/并将副主题放在主题栏下。
发布于 2017-04-19 18:24:08
关于主题交换,AMQP0.9.1规格有这样的看法:
主题交换类型的工作方式如下: 1.消息队列使用路由模式P.2绑定到交换。发布者发送带有路由键R3的交换消息。如果R匹配P,则消息传递到消息队列。用于主题交换的路由密钥必须由零或多个由点分隔的单词组成。每个单词可能包含字母a和a以及数字0-9. 路由模式遵循与路由键相同的规则,添加*匹配单个单词,#匹配零或多个单词。因此,路由模式*.stock.#匹配路由键usd.stock和eur.stock.db,而不匹配stock.nasdaq。
因此,"/“在路由键中没有授权,使用的分隔符是一个点。
https://stackoverflow.com/questions/43495565
复制相似问题