为方便设备之间的通信,物联网平台定义了产品 Topic 类和设备 Topic。设备可通过 Topic 实现消息的发布和订阅,从而实现了服务端与设备端的通信。本文为您介绍消息通信 Topic 的基本概念。
在发布/订阅消息通信模型中,Topic 用于定义消息传输的通道和路径,设备通过 Topic 将消息发布到物联网平台,物联网平台将消息发送给订阅 Topic 的设备。为方便海量设备基于 Topic 进行通信,简化授权操作,物联网平台定义了产品 Topic 类和设备 Topic。
产品维度的 Topic,是同一产品下不同设备的 Topic 集合。一个 ProductKey **** 下有多个 Topic 类。一个 Topic 类对一个 ProductKey **** 下所有设备通用。
Topic 类格式以正斜杠(/)进行分层,通常用 ${ProductKey} 和 ${DeviceName} 通配一个唯一的设备。例如/{ProductKey}/{deviceName}/custom/#
。
Topic 相当于设备之间通信的中间件,不同的设备端与服务端可以向 Topic 中发布和订阅信息。对于指定的 Topic,您可以对产品下的设备定义不同的权限。
设备可以向 Topic 发布或者订阅消息。在产品 Topic 类基础上,每个具体的${ProductKey}/${deviceName}
都归属于一个唯一的设备。与前缀、后缀类目组成的完整 Topic,就是具体设备的 Topic。
设备 Topic 与产品 Topic 类格式一致,Topic类中的变量 ${deviceName},在设备 Topic 中是具体的设备名称。产品 Topic 类中定义的功能和操作权限,会映射到具体的设备 Topic。
物联网平台预定义的产品 Topic 类对应的设备 Topic 包含基础通信 Topic、物模型通信 Topic 和自定义 Topic 三种类型:
sys/{ProductKey}/{DeviceName}/custom/{TopicSuffix}
已固定。创建自定义 Topic 的具体操作,请参见自定义 Topic。关于各 Topic 类的详细说明请见下表。
类型 | Topic类及数据格式 | 说明 |
---|---|---|
基础通信Topic | 设备影子 | 设备影子数据通过 Topic 进行流转,包括设备影子发布更新和设备接收影子变更内容。 |
OTA | 设备 OTA 升级消息的 Topic,包括设备上报 OTA 模块版本信息、物联网平台推送升级包信息、设备上报升级进度和设备请求获取最新升级包信息。 | |
任务 | 设备执行任务消息的 Topic,包括物联网平台获取设备待执行任务、通知设备执行任务、设备上报任务执行进度和响应信息。 | |
时钟同步 | NTP 服务同步请求和响应的 Topic,解决嵌入式设备资源受限,系统不包含 NTP 服务,端上没有精确时间戳的问题。 | |
物模型通信Topic | 属性上报 | 各物模型功能的 Topic。 |
事件上报 | ||
属性设置 | ||
服务调用 | ||
自定义 Topic | 自定义 Topic类及格式 | 您可根据业务需求,自定义 Topic 类。 |