|
|
HTTP协议是Web联网的基础,也是应用最为广泛和流行的协议,HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
$ l6 y' [3 W9 z
* j6 o# _2 e# T0 ]. r; fMQTT是一种基于发布/订阅模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。" H8 R n5 f& p" d
[6 b* R- ], \" [2 I3 P& d& E作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
4 C) |8 i- c, ?7 q6 F' ]/ P$ N+ J/ t9 }! E! |
根据3G网络的测量结果,MQTT的吞吐量比HTTP快93倍。此外,与HTTP相比,MQTT协议确保了高传输。
# s& V6 m. x+ J( P: c' B( y% B3 @) a3 B: Z/ [
MQTT协议有3个级别的服务质量:
, [4 K; @* Q. F) t4 R% h4 Z. E5 i( c& h& @
1、最多一次:保证尽力交付。
$ a; G4 K0 l+ l b9 @1 q3 s f' r7 L8 f- K$ }2 W- Q6 ~; N; `
2、至少一次:保证消息至少传送一次,但是消息也可以不止一次传递。, M; a+ }4 J& n- v- i
- s ^5 j: E J; G3、恰好一次:保证每个消息只被对方接收一次
4 z. S6 L$ X! Y' R1 a) {- o) w9 t9 C$ G
因为HTTP协议的首部(header)比较大,而且每次发送数据都要发送一个数据包来连接/断开TCP,因此发送的数据越多,数据总通信量也就越大;8 \! Z w$ ^/ f* c7 y7 `4 V
7 o1 I4 k; l/ O# [7 W
而MQTT 的首部比较小,还能在维持TCP连接的同时,进行下一次数据的收发,所以比起HTTP,它更能抑制数据总通信量。
5 P- g! \6 {% B
! d0 u) B5 J O: p/ n+ N, l所以综上看来,你认为HTTP协议和MQTT协议,那个协议会更好一些? |
|