MQTT是基于客户端-服务器的消息发布/订阅传输协议,最开始就是为物联网设备的网络接入而设计的,物联网设备大多都是性能低下,功耗较低的计算机设备,而且网络连接的质量也是不可靠的,所以在设计协议的时候最需要考虑的几点:
1、使用发布/订阅的传输模式,实现1对多的发布与接收,减少应用之间耦合度;
2、能够对负载内容屏蔽传输;
3、支持订阅、发布不同账号,实现读写权限分离,确保数据发布安全;
4、通过TCP/IP提供网络连接,实现方便,支持安全策略控制;
5、协议头部长度短,网络传输开销小,节约流量;
6、支持三种消息质量模式:
最多一次,只发送一次消息,不关注消息是否接受成功
至少一次,保证消息一定到达,单会有重复
只有一次,保证消息只有一次到达
7、通过last will和testament等特性通知客户端异常中断