开发者社区> 问答> 正文

LMQ 名词解释在哪里?



资源类


[backcolor=transparent]Instance
用户申请购买 MQTT 服务的实体单元,每个 MQTT 实例都对应一个全局唯一的服务接入点URL。使用 MQTT 前都需要在对应的 Region 申请一个实例,并使用对应的接入点来访问服务。如何申请 MQTT 实例请参考 资源申请
[backcolor=transparent]Parent Topic
MQTT 协议基于 Pub/Sub 模型,因此任何消息都属于一个 Topic。根据 MQTT 协议,Topic 存在多级,定义第一级 Topic 为父 Topic(Parent Topic),使用 MQTT 前,该 Parent Topic 需要先在 MQ 控制台申请。
[backcolor=transparent]Subtopic
MQTT 的二级 Topic,甚至三级 Topic 都是父 Topic 下的子类。使用时,直接在代码里设置,无需申请。需要注意的是 MQTT 限制 Parent Topic 和 Subtopic 的总长度为64个字符,如果超出长度限制将会导致客户端异常。
[backcolor=transparent]Client ID
MQTT 的 Client ID 是每个客户端的唯一标识,要求全局唯一,使用相同的 Client ID 连接 MQTT 服务会被拒绝。
Client ID 由两部分组成,组织形式为 GroupID@@@DeviceID。Client ID 的长度限制为64个字符,不要使用不可见字符。

  • [backcolor=transparent]Group ID: 用于指定一组逻辑功能完全一致的节点共用的组名,代表一类相同功能的设备。Group ID 需要在 MQ 控制台申请方可使用,申请链接参考申请资源
  • [backcolor=transparent]Device ID: 每个设备独一无二的标识,由业务方自己指定。需要保证全局唯一,例如每个传感器设备的序列号。


权限类


[backcolor=transparent]Username
使用 MQTT 客户端收发消息时,MQ 会根据用户设置的 Username 和 Password 来进行鉴权。鉴权逻辑遵循阿里云统一的权限规范。此处 Username 设置为阿里云的 AccessKey 即可。
[backcolor=transparent]Password
MQ 要求用户将 GroupID 作为签名字段,SecretKey 作为秘钥,使用 HmacSHA1 算法计算签名字符串,并将签名字符串设置到 Password 参数中用于鉴权。关于鉴权的签名计算规则请参考 签名计算章节文档。具体的代码实现可以参考各个语言版本的demo程序。

网络类


[backcolor=transparent]ServerUrl
MQ 提供的 MQTT 服务的接入点 URL,都是公网 URL,目前 MQTT 的接入除了支持标准协议的1883端口,同时还支持加密 SSL,WebSocket,Flash 等方式。接入点URL是在申请实例之后自动分配,请妥善保管。申请实例请参考 资源申请章节。

协议相关


[backcolor=transparent]QoS
QoS (Quality of Service)指代消息传输的服务质量。它包括QoS0(最多分发一次)、QoS1(至少达到一次)和 QoS2(仅分发一次)三种级别。
[backcolor=transparent]cleanSession
cleanSession 标志是 MQTT 协议中对一个客户端建立 TCP 连接后是否关心之前状态的定义。具体语义如下:
  • cleanSession=true:客户端再次上线时,将不再关心之前所有的订阅关系以及离线消息。
  • cleanSession=false:客户端再次上线时,还需要处理之前的离线消息,而之前的订阅关系也会持续生效。

[backcolor=transparent]注意:
  • MQTT 要求每个客户端每次连接时的 cleanSession 标志必须固定,不允许动态变化,否则会导致离线消息的判断有误。
  • MQTT 目前对外 QoS2 消息不支持非 cleanSession ,如果客户端以 QoS2 方式订阅消息,即使设置 cleanSession=false 也不会生效。
  • P2P 消息的 cleanSession 判断以发送方客户端的配置为准。
  • QoS 和 cleanSession 的不同组合产生的结果如下表所示:
QoS级别cleanSession=truecleanSession=false
QoS0无离线消息,在线消息只尝试推一次无离线消息,在线消息只尝试推一次
QoS1无离线消息,在线消息保证可达有离线消息,所有消息保证可达
QoS2无离线消息,在线消息保证只推一次暂不支持

展开
收起
猫饭先生 2017-10-27 10:32:15 2700 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
“静态调用链路发现“在APM中的应用场景分析及实践探索 立即下载
白山直播CDN流传递链路优化实践 立即下载
低代码开发师(初级)实战教程 立即下载