mqtt发布和订阅同一主题的最佳实践
mqtt best practice for publish and subscribe to same topic
我已经编写了一个angularjs应用程序。有一个表单,用户可以在其中键入注释。该应用程序使用特定的mqtt主题,如"app/form/notes"。该应用程序中的paho js客户端发布并订阅同一主题。如果用户正在键入某个内容,则会发生onchange事件,并将新值发布到主题。
现在,客户端正在接收他发送给代理的消息,因为他订阅了这个主题。但是接收到的消息是无用的,因为值是相同的。处理这个问题的最佳方法是什么?
如果你发现你订阅的频道与你发布的频道相同,你可以对你的主题结构做一些事情来使其不那么重要。例如,如果你遵循本文中建议的语义MQTT主题命名:http://tinkerman.cat/mqtt-topic-naming-convention/你会发现很多这样的问题都消失了。如果你是一个温度传感器,你关心的是公布你的温度,而不是订阅它
如果您已经在语义上进行了命名,并且您有一个很多参与者都在发布和细分的聊天主题,那么一些代理会自动将发布者添加到MQTT消息中,如果没有,则将其添加到有效负载中。这显然使得欺骗变得很容易,所以对于任何敏感事务,都不要依赖发布者身份的正确性。
在消息中包含一个客户端id,这样当消息到达时,就可以很容易地将其识别为源自本地,并且可以忽略。
例如
{
'source': 'client1',
'payload': 'asdfghjklqwertyuiop...'
}
相关文章:
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 有条件更新d3.js力图中节点的最佳方法
- 为react组件传递道具的最佳方式
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 让Webpack管理Quirky AMD定义的最佳方式
- 在承诺链中处理早期回报的最佳方式
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- Angularjs 1.5.x本地化最佳实践
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- MobileFirst:在客户端运行计时器作业-最佳选项
- 在ng重复循环中显示条件内容的最佳方式是什么
- 在phonegap中为android调用onload函数的最佳方式
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- 从数组中删除元素的最佳方法是:javascript/jquery
- 链接两个网页或网络应用程序的最佳方式
- 什么's是连接供应商js文件的最佳方式
- Express服务器中语言子域的最佳实践
- 什么's是在javascript中迭代项的最佳方式
- mqtt发布和订阅同一主题的最佳实践