|
|
HTTP协议是Web联网的基础,也是应用最为广泛和流行的协议,HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
7 k. Q& W- B0 ]: ~+ c! {" k/ t( _" T# z8 n9 A2 H0 {% y l
MQTT是一种基于发布/订阅模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。' H8 I' i1 k1 b: }# p- K+ o
, `: U; l- @0 |; ^作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。0 M3 n0 Q! T1 {, t9 t# Y0 @1 e
$ M- j+ U/ z# F2 c7 i
根据3G网络的测量结果,MQTT的吞吐量比HTTP快93倍。此外,与HTTP相比,MQTT协议确保了高传输。
* H/ b/ \) \; H
5 S, m1 X/ L. s( D! a% \MQTT协议有3个级别的服务质量:! T* ^. P/ N0 l! Q4 \* `: w3 B
8 ?+ p7 t2 b+ T) u( ]0 X
1、最多一次:保证尽力交付。3 V% q6 c- d3 v7 n8 P+ G
( [8 x$ f- ?2 X0 Y/ q U) ?/ W
2、至少一次:保证消息至少传送一次,但是消息也可以不止一次传递。
; Y' o9 t- m7 v4 U. j( t% b0 l( }, C: l
3、恰好一次:保证每个消息只被对方接收一次% l9 U# w6 {8 f! G3 r4 j
% q( j' y5 o! _; T- ?# ?& |因为HTTP协议的首部(header)比较大,而且每次发送数据都要发送一个数据包来连接/断开TCP,因此发送的数据越多,数据总通信量也就越大;
% L* P6 J9 j8 H3 R
! }2 r/ y& Q5 W4 n. u6 P$ T/ x0 i而MQTT 的首部比较小,还能在维持TCP连接的同时,进行下一次数据的收发,所以比起HTTP,它更能抑制数据总通信量。" c& `- |8 R5 z" S
: W, h3 E3 }7 T f7 Y- N所以综上看来,你认为HTTP协议和MQTT协议,那个协议会更好一些? |
|