MQTT作为一种消息协议,工作在TCP/IP的协议簇下,用在硬件的性能低下,网络较差的情况下使用。
传输消息中有三种身份参与:订阅者、发布者、代理(即中间服务器)。订阅者发送订阅的主题给中间服务器,中间服务器找到对应的发布主题的发布者。即完成消息的传输。当然消息的传输就会有其传输的格式限制,只有对应的格式正确,内容符合才会完成传输。
消息传输中,我们常常更加关心消息传输是否准确。在一些传输中,例如:传输采集传感器采集到的室内外的温湿度等,一次消息的传输失败,并不会太关心,因此这叫“至多一次”(QoS==0);而有时,在我们传达消息时,为了确保接收者一定接收到了该消息,而不在意其接受了几次,比如我们对同学传达信息时,有时候可以多说几遍,但是确保对方接受到了这个消息。这叫“至少一次”(QoS==1);而在有些情况下却不能多次传输或者少传输消息,就比如,在网络上消费时,不能只卖一次商品,而付费了多次,或者不付费。此时,称为“只有一次”(QoS==2)。