什么是QOS
QOS全程Quality of Service,即服务质量,代表MQTT消息发送接收的准确率
由于MQTT是标准协议,QOS的取值也有三种常量可选
QOS含义
public class QOS {
//最多一次,Sender只发送一次消息,Receiver收不到就算了
//这个方案的缺点是,Receiver有可能收不到消息
public static final int AT_MOST_ONCE = 0;
//至少一次,Sender发送多次消息,直到Receiver回复确认消息
//如果Receiver的回复丢失了,则Sender会重复发送消息给Receiver
//这个方案的缺点是,Receiver可能收到重复消息,如果Receiver的回复丢失的话
public static final int AT_LEAST_ONCE = 1;
//只有一次,Sender和Receiver进行双向确认,确认消息被收到且不重复
//性能开销更大,但可以保证准确无误
//在调试代码时,由于加了断点,MQTT的正常工作流程会被阻塞,这时有可能会导致重复收到消息,是正常现象
public static final int EXACTLY_ONCE = 2;
}