QoS0 代表,Sender 发送的一条消息,Receiver 最多能收到一次,也就是说 Sender 尽力向 Receiver 发送消息,如果发送失败,也就算了;
QoS1 代表,Sender 发送的一条消息,Receiver 至少能收到一次,也就是说 Sender 向 Receiver 发送消息,如果发送失败,会继续重试,
直到 Receiver 收到消息为止,但是因为重传的原因,Receiver 有可能会收到重复的消息;
QoS2 代表,Sender 发送的一条消息,Receiver 确保能收到而且只收到一次,也就是说 Sender 尽力向 Receiver 发送消息,
如果发送失败,会继续重试,直到 Receiver 收到消息为止,同时保证 Receiver 不会因为消息重传而收到重复的消息。
注意:
QoS是Sender和Receiver之间的协议,而不是Publisher和Subscriber之间的协议。换句话说,Publisher发布了一条QoS1的消息,只能保证Broker能至少收到一次这个消息;
而对于Subscriber能否至少收到一次这个消息,还要取决于Subscriber在Subscibe的时候和Broker协商的QoS等级。
API:
====
-
mqtt.connect() 连接到mqtt服务器
-
mqtt.Client() 创建一个客户端
-
mqtt.Client#publish() 发送消息
-
mqtt.Client#subscribe()订阅一个或者多个主题
-
mqtt.Client#unsubscribe() 取消订阅
-
mqtt.Client#end() 关闭客户端
-
mqtt.Client#removeOutgoingMessage() 清空发送缓存
-
mqtt.Client#reconnect() 重新连接
-
mqtt.Client#handleMessage() 处理消息
-
mqtt.Client#connected 已经连接
-
mqtt.Client#reconnecting 正在重连
-
mqtt.Client#getLastMessageId() 获取上一个已发送的信息的id
-
mqtt.Store() 创建存储对象
-
mqtt.Store#put() 存储
-
mqtt.Store#del() 删除
-
mqtt.Store#createStream() 创建包含内存中所有数据包的流
-
mqtt.Store#close() 关闭存储
1、mqtt.connect([url], options)
连接到给定url和选项指定的代理并返回客户端对象mqtt.Client。
URL可以位于以下协议上:“mqtt”、“mqtts”、“tcp”、“tls”、“ws”、“wss”。URL也可以是由返回的对象URL.parse文件(&#x