ModbusTCP VS MQTT——简单通俗对比
附图:MQTT 非加密登录抓包:
如果有多个设备或电脑都需要彼此进行数据请求和交换。Modbus TCP VS MQTT是怎么连接的呢。Modbus TCP:
可以看到,如果有6个不同的设备,都需要彼此两两进行数据采集和交互。就需要15个连接。1个设备要分别和另5个设备连接。MQTT:
如果是MQTT的连接,6个设备,只需要连接到同一个MQTT服务器里就行了。这样对每个设备来说,只需要连接一次。但是需要额外有一个服务器做平台,做数据中转。这就是MQTT的特色。
如果以购物消费举例:Modbus TCP:早餐店。ModbusTCP早餐店只卖四种早餐。0X(包子),1X(油条),3X(豆浆),4X(白粥)。而且数量有限,每天只卖65535份。卖完就没了。然后一次最多可以买一百多份。而且买早餐不记名,随到随买。
MQTT: 会员制高级餐厅。MQTT就好比如是高级餐厅。用户要消费呢,就需要登录,确认是会员才允许进入餐厅就餐。进入餐厅就餐呢,可以有精美菜单,想要吃什么呢,可以订阅菜单上面的菜。当然,各种各样的美食,应有尽有。你下单的时候,还有服务员询问:老板,请问你的订单需要消息等级服务么。老板:有什么消息等级服务。(QoS)服务员:是这样的。你花一块钱呢,可以升级为等级1消息模式。两块钱呢,可以升级为等级2消息模式呢。(QoS0,QoS1,QoS2)老板:有什么区别呢。服务员:解释起来很复杂,要不你直接花钱体验一下吧。老板:好的。那我先不体验了。就默认等级0好了。(QoS0)服务员:好的,老板,你的菜单订阅完成。稍后厨师做好了,会将您的美食发布出来。会有服务员上菜。十分钟后,陆续上菜。老板:服务员,怎么回事,我点的陈年酸菜炒九转肥肠呢,怎么没有上呢。服务员:老板,是这样的,你享受的是默认等级0服务(QoS0)。上菜是没有确认的。刚才餐厅太忙,可能给你遗漏了。如果你需要的话,可以重新下单。对于等级0的服务,如果漏上的菜,我们是不会补的。祝您用餐愉快。老板:服务员。给我升级等级1服务。我要点肥肠。(QoS1)服务员:好的。五分钟后。服务员A:老板,您的肥肠。请慢用。一分钟后:服务员B: 老板,您的肥肠。请慢用。老板:刚才不是上过了么。怎么还给我上。服务员:是这样的。你享受的是等级1服务(QoS1)。刚才服务员A上菜的时候,忘了确认您收到菜了。后厨又给你上了一份。一分钟后:服务员C: 老板,您的肥肠。又慢用。(呀,我怎么说又字)老板:怎么回事,都给我上了两份了。还上?我可不多给钱哦。服务员:老板,您享受的是等级1服务。重复上的菜,我们不会重复收钱的。可能是刚才餐厅太忙了,前两个服务员忘了确认了。好了,我现在给你打钩确认上了。这下不会再重复上了。(QoS1下,消息可能会重复收到)十分钟后:老板:服务员,给我来个芒果布丁甜品。这次我要升级等级2服务。(QoS2)服务员:好的,老板,给你下单成功。请稍后。一分钟后,服务员D: 老板,您的芒果布丁。请慢用。服务员D: 后台后台,8号桌靓仔的芒果布丁确认收到。一分钟后:厨师长:老板,请问一下,刚才您的芒果布丁收到了么。老板:收到了,味道不错。厨师长:后台后台,8号桌靓仔的芒果布丁确认收到。一分钟后:餐厅经理:老板请问一下,刚才您的芒果布丁收到了么。老板:收到了。我只是点了芒果布丁,怎么要问这么多次呀。服务员:老板,是这样的,这是我们的等级2服务(QoS2)。会由我们的服务员,厨师长,经理全部确认您收到了,我们才完成这个订单的。我们等级2服务的宗旨是不会给顾客重复上每一道菜。MQTT的消息机制,等级0,等级1,等级2。差不多就是这么个意思了。
页:
[1]