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只能被该设备用于消息通信,例如,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类。 |