我有这个应用程序使用mqtt-client java library通过mqtt连接到ActiveMQ代理。只要我的主题没有正斜杠(/),订阅,发布和接收邮件就可以正常工作。如何在mqtt主题中转义特殊字符(正斜杠)?
据我所知,正斜杠是mqtt中的特殊字符,按照activemq mqtt support"/"
将被转换为"."
。但是,就我而言,我需要连接到使用JMS创建的主题,这些主题是以uri编写的(例如http://activemq.apache.org/),因此它们的名称上会有“/”。
无论如何要在mqtt上寻找"/"
?目前,如果我尝试连接到一个叫http://activemq.apache.org/
话题,将在事实上连接到http:..activemq.apache.org.
你无法逃避的“ /“在mqtt上,我不知道该怎么建议。 – ralight
这确实需要熟悉activemq实现的人来回答。你的问题源于他们如何选择重写主题 - 似乎没有选择阻止它这样做。如果你在这里没有得到有用的回应,你应该尝试通过一个activemq支持渠道。 – knolleary
@knolleary我检查了他们的[source](https://git-wip-us.apache.org/repos/asf?p=activemq.git;a=blob;f=activemq-mqtt/src/main/java/ org/apache/activemq/transport/mqtt/MQTTProtocolConverter.java; h = ac598e7c38825b88c233de52b5b81f205797f737; hb = a63a8320eabbe4e988b6d67eb6cf84aa0d294e0a),它们将“/”替换为“。”。你是否偶然地知道,如果按照mqtt标准,mqtt是否应该接受以“/”命名的主题?如果是这样的话,我可能会尝试推动经纪人来源的改变(或者自己改变它),否则我不应该试图说服它在这里不使用这样的主题名称 – Thomas