You need to enable JavaScript to run this app.
导航
通信 Topic 概述
最近更新时间:2024.06.14 14:08:03首次发布时间:2024.06.14 12:54:42

为方便设备之间的通信,物联网平台定义了产品 Topic 类和设备 Topic。设备可通过 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 后,当服务端应用发送消息到该 Topic 时,物联网平台会把消息发送到设备。
  • 发布和订阅:具备订阅和发布两个功能,即设备可以通过该 Topic 将消息发送到物联网平台,同时也可以通过该 Topic 接收消息。

设备 Topic

设备可以向 Topic 发布或者订阅消息。在产品 Topic 类基础上,每个具体的${ProductKey}/${deviceName}都归属于一个唯一的设备。与前缀、后缀类目组成的完整 Topic,就是具体设备的 Topic。
设备 Topic 与产品 Topic 类格式一致,Topic类中的变量 ${deviceName},在设备 Topic 中是具体的设备名称。产品 Topic 类中定义的功能和操作权限,会映射到具体的设备 Topic。

Topic 分类和通信说明

物联网平台预定义的产品 Topic 类对应的设备 Topic 包含基础通信 Topic、物模型通信 Topic 和自定义 Topic 三种类型:

  • 基础通信 Topic:设备使用物联网平台的物模型通信、OTA 升级、任务管理等功能,必须使用的 Topic。
  • 物模型 Topic:物模型是对设备实际功能的抽象,从属性、服务和事件三个维度,分别描述了该实体是什么、能做什么、能提供什么信息。例如智能风扇的开关状态是属性,开关的操作是服务,报警是事件。物模型的概念和使用,请参见物模型概述
  • 自定义Topic:如果物模型不能满足您的业务需求,可以使用自定义 Topic,自定义 Topic 的前5个类目sys/{ProductKey}/{DeviceName}/custom/{TopicSuffix}已固定。创建自定义 Topic 的具体操作,请参见自定义 Topic

关于各 Topic 类的详细说明请见下表。

类型

Topic类及数据格式

说明

基础通信Topic

设备影子

设备影子数据通过 Topic 进行流转,包括设备影子发布更新和设备接收影子变更内容。

OTA

设备 OTA 升级消息的 Topic,包括设备上报 OTA 模块版本信息、物联网平台推送升级包信息、设备上报升级进度和设备请求获取最新升级包信息。

任务

设备执行任务消息的 Topic,包括物联网平台获取设备待执行任务、通知设备执行任务、设备上报任务执行进度和响应信息。

时钟同步

NTP 服务同步请求和响应的 Topic,解决嵌入式设备资源受限,系统不包含 NTP 服务,端上没有精确时间戳的问题。

物模型通信Topic

属性上报

各物模型功能的 Topic。

事件上报

属性设置

服务调用

自定义 Topic

自定义 Topic类及格式

您可根据业务需求,自定义 Topic 类。
Topic 类是一个 Topic 模板配置,编辑更新某个 Topic 类后,可能对产品下所有设备使用该类 Topic 通信产生影响。建议在设备研发阶段设计好,设备上线后不再变更 Topic 类。