gpt4 book ai didi

activemq - 如何转义 mqtt 主题中的特殊字符(正斜杠)?

转载 作者:行者123 更新时间:2023-12-02 01:58:42 26 4
gpt4 key购买 nike

我有这个应用程序使用 mqtt-client java library通过 mqtt 连接到 ActiveMQ 代理。只要我的主题没有正斜杠 (/),消息的订阅、发布和接收就可以正常工作。

我知道正斜杠是 mqtt 中的特殊字符,并且根据 activemq mqtt support "/" 将被转换为 "."。但是,在我的例子中,我需要连接到使用 JMS 创建的主题,这些主题被编写为 uri(例如 http://activemq.apache.org/ ),因此它们的名称上有“/”。

有没有办法在 mqtt 上对 "/" 进行转义?目前,如果我尝试连接到名为 http://activemq.apache.org/ 的主题,它实际上会连接到 http:..activemq.apache.org。

最佳答案

我的建议..只有在部署自己的 ActiveMQ 服务时才有效..

下载 ActiveMQ 源..转换发生在模块 MQTTProtocolConverter 中。在那里你会看到特殊的转换。代码在 5.10.0 中发生了变化,但不用说你可以在那里转义,它应该可以工作。我修改了来自 MQTT 的入站请求和出站请求的代码。

我在尝试使用 MQTT 时遇到过类似的问题,主题中有“.”例如。

MQTT topic is /accounts/foobar/users/foo/storage/myText.txt

这在当前实现中更改为

.accounts.foobar.users.foo.storage.myText.txt

然后当从 MQTT 插件收到消息时,主题将转换为

/accounts/foobar/users/foo/storage/myText/txt

这不是我想要的,所以我不得不修改 Converter 以转义“.” 结果是 JMS toipc 变成了

.accounts.foobar.users.foo.storage.myText\.txt

有效..

关于activemq - 如何转义 mqtt 主题中的特殊字符(正斜杠)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18483500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com