|
|
HTTP协议是Web联网的基础,也是应用最为广泛和流行的协议,HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。! X7 w4 e9 O& ?+ z
' \" H+ R" |, ?: c% O$ cMQTT是一种基于发布/订阅模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。
' H5 b8 `0 t: p) r: S7 H r# c2 I. |4 i8 k; F+ G h: X
作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
1 o9 a( @0 ], F3 j0 @1 X5 |1 _2 o
根据3G网络的测量结果,MQTT的吞吐量比HTTP快93倍。此外,与HTTP相比,MQTT协议确保了高传输。
7 _. m" O# X: a2 B/ `3 D5 h1 S/ G
2 M7 ?: [& K+ v! _) VMQTT协议有3个级别的服务质量:
3 z4 E. C& d; e, }' I2 e/ k J4 o1 g' [: J
1、最多一次:保证尽力交付。6 o3 c; j8 W6 s' X0 h
( E2 Q2 U" \5 b- a) W
2、至少一次:保证消息至少传送一次,但是消息也可以不止一次传递。5 d: o9 O5 E) w: ?: n' G# _- a7 ]
, q4 _* _" d, s; E3、恰好一次:保证每个消息只被对方接收一次
8 q* j- _5 | h8 A0 r/ z# Q
, f. U5 C6 y9 z% V8 B+ L9 X" R因为HTTP协议的首部(header)比较大,而且每次发送数据都要发送一个数据包来连接/断开TCP,因此发送的数据越多,数据总通信量也就越大;
7 D! ?( c% l3 `% b( x
/ e- P* C5 j, k$ R6 o. y而MQTT 的首部比较小,还能在维持TCP连接的同时,进行下一次数据的收发,所以比起HTTP,它更能抑制数据总通信量。5 M: h; o/ |, p7 E
7 p# h0 H+ ^1 \* z所以综上看来,你认为HTTP协议和MQTT协议,那个协议会更好一些? |
|