|
|
HTTP协议是Web联网的基础,也是应用最为广泛和流行的协议,HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。8 q/ S, K; M0 Q A3 U' P5 s
7 [% i( {; S7 j& o$ {MQTT是一种基于发布/订阅模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。
; \' ~" Y! l7 r6 o4 {( R( f' f$ _+ ?, _5 t: q$ V/ @
作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。- H5 i3 e+ G* B' O9 O& _- M5 }. D
# Y9 r- U [" Q
根据3G网络的测量结果,MQTT的吞吐量比HTTP快93倍。此外,与HTTP相比,MQTT协议确保了高传输。 b4 ?% {. Q! ], d& `% g
+ o# Q1 ]. o G9 j5 |, @
MQTT协议有3个级别的服务质量:
4 i1 b0 E$ r1 S" ]
b- z* v! l# z$ ?$ ]1、最多一次:保证尽力交付。
6 W: j3 w" d7 ^+ w$ J( `
5 J* _: }, m/ V M( r9 J2、至少一次:保证消息至少传送一次,但是消息也可以不止一次传递。
# O8 |' P3 k/ M0 |4 Q, V
/ i) v3 x7 m; A6 s3、恰好一次:保证每个消息只被对方接收一次
: V K, p" r/ U: I! s+ i8 Y: Y2 E
9 b. j4 d. o3 E5 u! y5 @: N; q6 w4 ~因为HTTP协议的首部(header)比较大,而且每次发送数据都要发送一个数据包来连接/断开TCP,因此发送的数据越多,数据总通信量也就越大;
/ E- V0 [' \% o- p- g7 p
8 ?/ }7 D3 m- v; H而MQTT 的首部比较小,还能在维持TCP连接的同时,进行下一次数据的收发,所以比起HTTP,它更能抑制数据总通信量。 l2 H* B1 m& }: {
0 H% M: ~6 N1 f# c4 i: M2 G# o
所以综上看来,你认为HTTP协议和MQTT协议,那个协议会更好一些? |
|