在物联网的世界里面,典型的网络架构如下,首先是终端的设备或者传感器采集到信号或者信息,对于不能上internet或者intranet网的设备,传感器先把探测到的信息发送到网关,然后网关把信息发送给服务器;有的设备本身就自带了接入网络的功能,比如手机,那就可以直接连接入服务器。
有的时候,为了给服务器减压,我们可以选择一些轻量级的通信协议,比如MQTT,而不是HTTP,那为什么选择MQTT,而不是HTTP呢?因为HTTP 协议的首部(header)比较大,而且每次发送数据都要发送一个数据包来连接/断开TCP,因此发送的数据越多,数据总通信量也就越大;
而MQTT 的首部比较小,还能在维持TCP 连接的同时,进行下一次数据的收发,所以比起HTTP,它更能抑制数据总通信量。
除此之外,在使用MQTT 时还要注意一点,即应该一边维持MQTT的TCP 连接,一边进行数据的发送和接收。因为MQTT 是通过维持TCP 连接来削减通信量的,所以要是每次进行数据通信都断开TCP 连接,MQTT 就会跟HTTP 一样在每次发送数据时都执行连接和断开处理,结果反而会增加通信量。