1.什么是Topic

物联网平台中,服务端和设备端通过Topic来实现消息通信。Topic是针对设备的概念,Topic类是针对产品的概念。

产品Topic类

为了方便海量设备基于Topic进行通信,简化授权操作,物联网平台增加了产品Topic类的概念。Topic类是一类Topic的集合,例如:
产品的自定义Topic类/${YourProductKey}/${YourDeviceName}/user/update是具体设备Topic/${YourProductKey}/device1/user/update/${YourProductKey}/device2/user/update等的集合。

设备Topic类

产品的Topic类不用于通信,只是定义Topic,用于消息通信的是具体的设备Topic。
产品的所有Topic类会自动映射到设备上,生成具体设备Topic,您无需单独为每个设备创建Topic。设备Topic格式和产品Topic类格式一致,区别在于Topic类中的变量${YourDeviceName},在Topic中是具体的设备名称(DeviceName)。
图 1. 设备Topic自动生成示意图
消息通信Topic - 图1
设备Topic只能被该设备用于消息通信,例如,Topic:/${YourProductKey}/device1/user/update归属于设备device1,所以只能被设备device1用于发布或订阅消息,而不能被设备device2用于发布或订阅消息。
设备可以通过UNSUB指令取消与指定Topic的订阅关系,取消成功后,该Topic从已订阅Topic列表中删除。

Topic分类

物联网平台将Topic分为三类。

类别 说明
基础通信Topic 物联网平台预定义的基础功能通信Topic,包含:
- OTA升级相关Topic。各Topic的用途和消息数据格式
- 设备标签相关Topic。各Topic的用途和消息数据格式
- 时钟同步相关Topic。时钟同步功即NTP服务
- 设备影子相关Topic。各Topic的用途和消息数据格式
- 配置更新相关Topic。各Topic的用途和消息数据格式
- 广播Topic。调用云端API PubBroadcast向订阅了该Topic的所有设备发送广播消息,实现批量控制设备。
物模型通信Topic 物联网平台预定义的物模型通信Topic。各物模型功能Topic消息的数据格式,请参见设备属性、事件、服务

说明 在云端,不可以调用Pub接口向物模型通信Topic发送消息。
自定义Topic 您可以根据业务需求,在产品的Topic类列表页自定义Topic类,具体操作请参见自定义Topic类。Topic类是一个Topic模版配置,编辑更新某个Topic类后,可能对产品下所有设备使用该类Topic通信产生影响。建议在设备研发阶段设计好,设备上线后不再变更Topic类。