gpt4 book ai didi

javascript - MQTT 主题和唯一性问题

转载 作者:行者123 更新时间:2023-11-28 20:32:40 24 4
gpt4 key购买 nike

我正在尝试使用 MQTT,但遇到了一些奇怪的情况。这可能是由于我的具体设置所致,但我想我还是会问一下。

我使用 Node.JS 和 mqttjs 作为代理。我还使用用 Java 编写的 IBM ia92 测试客户端。

当我订阅像 /system/app 这样的主题,然后向 /system/appp 发布消息时,我的客户端会收到此消息,尽管主题名称不是相同。请注意,如果我发布到 /system/ap 我不会收到消息。当然,发布到 /system/app 效果很好。

这是否意味着 MQTT“自动填充”类似的内容,或者这是客户端/代理中的错误?我知道 +# 通配符,但我不知道这个“功能/错误”。

我正在使用的经纪人可以在这里找到:

https://github.com/adamvr/MQTT.js/blob/master/examples/server/orig.js

第 23 行有一些奇怪的正则表达式,我试图弄清楚为什么需要它以及它的作用。如果这不是一个功能,也许它可能是错误的原因?如果有人对此有任何想法,我将不胜感激。

最佳答案

我对 MQTT 一无所知,但“bug”似乎是由于正则表达式未锚定而引起的,因此,如果可以在对其进行测试的主题名称中找到订阅主题名称,匹配将会成功(在第 40 行的 test 处)。

如果您通过更改第 23 行来添加字符串 anchor $ 的结尾

 , reg = new RegExp(topic.replace('+', '[^\/]+').replace('#', '.+$'));   

 , reg = new RegExp(topic.replace('+', '[^\/]+').replace('#', '.+') + '$');

它可能会阻止这种行为。

我建议您在 github 存储库中将其作为问题打开。

关于javascript - MQTT 主题和唯一性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16046259/

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