我写了一个 angularjs 应用程序。有一个表格,用户可以在其中输入注释。该应用程序使用特定的 mqtt 主题,如“app/form/notes”。此应用程序中的 paho js 客户端发布和订阅相同的主题。如果用户正在输入内容,则会发生 onchange 事件并将新值发布到主题。
现在客户正在接收他发送给代理的消息,因为他订阅了这个主题。但是收到的消息是没有用的,因为值是一样的。处理此问题的最佳方法是什么?
最佳答案
如果您发现订阅的 channel 与发布的 channel 相同,您可能可以对主题结构做一些事情来避免这种情况。例如,如果您遵循本文中建议的语义 MQTT 主题命名:http://tinkerman.cat/mqtt-topic-naming-convention/你会发现很多这类问题都会消失。如果您是温度传感器,您关心的是发布您的温度,而不是订阅它。
如果您已经在语义上命名,并且您有一个很多玩家正在发布和订阅的闲聊话题,一些代理会自动将发布者添加到 MQTT 消息中,如果没有,添加它到有效载荷。这显然使欺骗变得容易,因此不要依赖发布者身份对任何敏感交易都是正确的。
关于javascript - 发布和订阅同一主题的 mqtt 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37104741/