PS:原创文章,如需转载,请注明出处,谢谢!
本文地址:http://flyer0126.iteye.com/blog/2228953
MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议,适用于一些条件比较苛刻的环境,进行低带宽、不可靠或间歇性的通信。值得一提的是mqtt提供三种不同质量的消息服务:
- “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
- “至少一次”,确保消息到达,但消息重复可能会发生。
- “只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
设置
1. mosquitto_pub 客户端可发布一条消息到指定主题
1.1. 用法:
mosquitto_pub [-d] [-h hostname] [-i client_id] [-I client id prefix] [-p port number] [-q message QoS] [--quiet] [-r] { -f file | -l | -m message | -n | -s} [-u username [-P password] ] [ --will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain] ] -t message-topic
1.2. 选项:
-q, --qos
指定消息的服务质量,可以为0,1,2,默认是0.
2. sub_client 客户端订阅一个或多个主题的消息
2.1. 用法:
mosquitto_sub [-c] [-d] [-h hostname] [-i client_id] [-I client id prefix] [-k keepalive time] [-p port number] [-q message QoS] [--quiet] [-v] [ -u username [-Ppassword] ] [ --will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain] ] -t message topic ...
2.2. 命令:
mosquitto_sub 订阅到主题,接收到消息时打印
2.3. 选项:
-q, --qos
指定消息的服务质量,可以为0,1,2,默认是0.
附:官方文档描述
MQTT defines three levels of Quality of Service (QoS). The QoS defines how hard the broker/client will try to ensure that a message is received. Messages may be sent at any QoS level, and clients may attempt to subscribe to topics at any QoS level. This means that the client chooses the maximum QoS it will receive. For example, if a message is published at QoS 2 and a client is subscribed with QoS 0, the message will be delivered to that client with QoS 0. If a second client is also subscribed to the same topic, but with QoS 2, then it will receive the same message but with QoS 2. For a second example, if a client is subscribed with QoS 2 and a message is published on QoS 0, the client will receive it on QoS 0.
Higher levels of QoS are more reliable, but involve higher latency and have higher bandwidth requirements.
-
0: The broker/client will deliver the message once, with no confirmation.
-
1: The broker/client will deliver the message at least once, with confirmation required.
-
2: The broker/client will deliver the message exactly once by using a four step handshake.
相关推荐
2. **QoS保障**:MQTT提供了三种服务质量(QoS)级别:QoS 0(至多一次),QoS 1(至少一次)和QoS 2(只有一次)。QoS 0适用于无需确认的一次性传输,QoS 1确保消息至少被接收一次,可能重复,而QoS 2则保证消息只...
2. **QoS(Quality of Service)等级**:提供了三种服务质量级别(QoS 0、QoS 1、QoS 2),以确保消息在不同网络条件下的可靠传递。 3. **持久化存储**:mosquitto 可以将未送达的消息存储起来,以便在网络恢复后...
2. **QoS等级**:MQTT定义了三种服务质量(Quality of Service, QoS)等级:0(至多一次)、1(至少一次)和2(只有一次),确保消息可靠传递。 3. ** retained消息**:允许服务器保留最后一条发布的消息,新订阅者...
2. **QoS(Quality of Service)等级**:MQTT提供了三种服务质量等级:QoS 0(至多一次),QoS 1(至少一次)和QoS 2(只有一次)。QoS 0适用于对数据丢失不敏感的情况,而QoS 2则保证消息的可靠传输,即使在网络不...
3. **QoS(Quality of Service)等级**:MQTT有三个服务质量等级:0、1和2,分别对应最佳努力、至少一次和恰好一次的交付保证。 **三、mosquitto1.4在Windows上的安装** 1. **下载**:首先从官方网站或第三方源...
6. **QoS等级**:MQTT有三种服务质量(QoS)等级:QoS 0(至多一次)、QoS 1(至少一次)和QoS 2(只有一次)。MQTT.fx允许用户为每个消息选择合适的QoS级别,以满足不同的可靠性需求。 7. **主题树视图**:软件...
- **QoS (Quality of Service)**: 服务质量,有三个等级(0、1、2),用于保证消息的可靠传递。 - **发布(Publish)**: 主动发送消息到主题的行为。 - **订阅(Subscribe)**: 注册主题以接收消息。 - **Will (遗嘱...
它使用TCP/IP作为传输层,支持三种服务质量(QoS):0、1、2,分别对应最佳努力、至少一次和精确一次的传递保证。QoS 0适用于不需要确认的消息,而QoS 2适用于对可靠性要求极高的场景。 **2. mosquitto项目概述** `...
在使用`Mosquitto`时,还需要了解MQTT协议的一些基本概念,如“主题”(Topic)、“质量服务等级”(QoS,Quality of Service)以及“保留消息”(Retained Message)等。主题是消息发布的路径,QoS确保消息至少被...
3. **发布和订阅**:发布消息是通过`mosquitto_publish`函数完成的,需要指定主题、QoS级别(质量服务)以及消息内容。订阅主题则使用`mosquitto_subscribe`函数,指定要订阅的主题。 4. **处理回调**:mosquitto库...
4. **QoS(Quality of Service)级别**:MQTT提供了三种服务质量级别,分别是0、1和2,分别对应于最佳努力、至少一次和确切一次的交付保证。 5. **保持连接(Keep Alive)**:为了检测客户端是否在线,mosquitto...
这些方法可能涉及到MQTT的QoS(服务质量)级别,如QoS 0、1、2。 3. **回调机制**:Java库可能通过回调接口(如`MqttCallback`)来处理接收到的消息、连接状态变化等事件。 4. **错误处理和异常**:源码中会包含...
2. **QoS(Quality of Service)级别**:MQTT定义了三种服务质量等级,QoS 0(最多一次)、QoS 1(至少一次)和QoS 2(恰好一次),以确保消息的可靠传输。 - QoS 0:消息发送后不做任何确认,适合对可靠性要求不...
4. **服务质量(QoS)**:mosquitto支持MQTT的三种服务质量等级(QoS 0, QoS 1, QoS 2),确保消息的一次性、至少一次或精确一次交付。 5. **网络连接管理**:mosquitto能够处理网络连接的建立、保持和断开,支持TCP...
3. **QoS服务质量**:MQTT定义了三种服务质量(QoS)级别,分别是0、1和2,分别对应至多一次、至少一次和恰好一次的交付保证。开发者可以根据应用场景选择合适的服务质量。 4. **主题设计**:主题是MQTT消息路由的...
3. **QoS(Quality of Service)级别**:MQTT提供了三种服务质量级别,QoS 0(至多一次),QoS 1(至少一次)和QoS 2(精确一次)。这些级别确保消息在不同网络条件下的可靠性。 4. **保持连接(Keep Alive)**:...
2. **QoS保证**:MQTT提供了三种服务质量(Quality of Service,QoS)等级:0、1和2,分别对应最佳努力、至少一次和精确一次的交付保证。mosquitto支持这三种QoS级别,确保数据在不可靠网络环境下的可靠性。 3. **...
【描述】: mosquitto.rar 是一个包含安装mosquitto服务所需文件的压缩包。mosquitto是基于MQTT(Message Queuing Telemetry Transport)协议的一个开源消息代理,它允许设备和服务之间进行低带宽、高延迟、可靠的...
3. QoS(Quality of Service):MQTT提供了三种服务质量级别(0、1、2),以保证消息的可靠传输。QoS 0适用于无需确认的一次性传输,QoS 1确保至少一次传递,而QoS 2则保证消息无重复且确切到达一次。 4. 客户端ID...
4. **QoS(Quality of Service)保障**:MQTT定义了三种服务质量等级(0, 1, 2),确保消息至少一次、至少一次或精确一次交付。 5. **安全性**:支持SSL/TLS加密以保护传输数据的安全,可能还包括基于用户名/密码的...