物联网平台中,服务端和设备端通过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类以正斜线(/)进行分层,区分每个类目。其中,有两个类目为既定类目:${YourProductKey}表示产品的标识符ProductKey,${YourDeviceName}表示设备名称。
  • 操作权限:
    • 发布表示设备可以往该Topic发布消息。
    • 订阅表示设备可以订阅该Topic,从而获取消息。

设备Topic

产品的Topic类不用于通信,只是定义Topic,用于消息通信的是具体的设备Topic。

注意 在进行上下行通信调试时,请确保指定的Topic具备对应的操作权限。

您创建设备后,产品的所有Topic类会自动映射到设备上,生成具体设备Topic,您无需单独为每个设备创建Topic。设备Topic格式和产品Topic类格式一致,区别在于Topic类中的变量${YourDeviceName},在Topic中是具体的设备名称(DeviceName)。

图 1. 设备Topic自动生成示意图
Topic

设备Topic只能被该设备用于消息通信,例如,Topic:/${YourProductKey}/device1/user/update归属于设备device1,所以只能被设备device1用于发布或订阅消息,而不能被设备device2用于发布或订阅消息。

设备发送SUB指令订阅某个Topic后,登录物联网平台控制台在对应实例下,选择设备管理 > 设备,单击设备对应的查看,进入设备详情页,单击Topic列表页签,已订阅Topic列表展示了设备订阅成功的所有Topic。云端系统可以通过其中的Topic发送下行消息。

单击列表中已订阅的自定义Topic对应的发布消息,可通过该Topic从云端发布一条消息到设备端。使用通配符的自定义Topic除外,具体信息,请参见带通配符的自定义Topic

设备可以通过UNSUB指令取消与指定Topic的订阅关系,取消成功后,该Topic从已订阅Topic列表中删除。

如果您需要管控单个设备的消息收发,请在物联网平台控制台对应实例下设备列表页或在服务端调用DisableThing接口,禁用该设备;或在业务上管控发送给设备的消息。

Topic分类

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

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

在云端通过物模型功能远程控制设备,请调用SetDevicePropertySetDevicesProperty设置设备属性值;调用InvokeThingServiceInvokeThingsService调用设备服务。

自定义Topic 您可以根据业务需求,在产品的Topic类列表页自定义Topic类,具体操作请参见自定义Topic类

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