本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
如果物模型功能不能满足您的业务需求,可以使用自定义Topic实现设备上下行通信。设备自定义Topic需您在物联网平台从产品维度进行添加和管理,产品的自定义Topic类会自动映射为该产品下所有设备的自定义Topic。物联网平台对自定义Topic通信的数据格式没有要求,需您自定义。本文介绍如何为产品自定义Topic类及自定义Topic的使用和通信说明。
背景信息
应用场景
服务端下发消息到设备端
服务端调用Pub,可向指定的自定义Topic发布消息。设备通过订阅该Topic,接收来自服务端的消息。
设备端发送消息到服务端
设备端向自定义Topic发布消息,服务端可通过物联网平台的AMQP订阅或云产品流转功能,接收来自设备端的消息。
设备与设备通信
设备端向自定义Topic发布消息,可通过物联网平台的云产品流转或Topic消息路由,将消息转发到另一个设备的Topic。
添加自定义Topic类
登录物联网平台控制台。
在实例概览页签的全部环境下,找到对应的实例,单击实例卡片。
在左侧导航栏,选择 。
在产品页面,找到需要自定义Topic类的产品,并单击对应操作列中的查看。
在产品详情页面,单击 。
配置参数,单击确认。
参数
描述
设备操作权限
设备对该Topic的操作权限,可设置为:
发布:设备可以将消息通过该Topic发送到物联网平台。
订阅:设备订阅该Topic后,当服务端应用发送消息到该Topic时,物联网平台会把消息发送到设备。
发布和订阅:具备订阅和发布两个功能,即设备可以将消息通过该Topic发送到物联网平台,同时也可以通过该Topic接收消息。
Topic类
Topic格式必须以
/
进行分层,区分每个类目。类目命名只能包含字母、数字和下划线(_),每级类目不能为空。对于云网关产品,Topic类完全由用户自定义输入。支持使用通配符
+
和#
,支持使用${deviceName}
通配DeviceName。对于非云网关产品:
只有设备操作权限为订阅时,才可以使用通配符
+
和#
,以便设备实现批量订阅Topic。自定义Topic类前三个类目已固定为
/${productKey}/${deviceName}/user/
,需将Topic类填充完整。
说明通配符使用方法,请参见本文下方的带通配符的自定义Topic说明。
是否开启代理订阅
设备操作权限为订阅或发布和订阅,可开启代理订阅。
开启代理订阅后,设备与物联网平台建连时,物联网平台查询已开启代理订阅的Topic,帮助设备完成订阅。
是否开启压缩或解压缩
尊享型企业版实例下,可开启自定义Topic数据压缩或解压缩。数据压缩功能,请参见数据压缩。
描述
可输入文字,描述该Topic类,用于区分不同Topic类的功能。
管理Topic类
您可在自定义Topic的Topic类列表中,找到对应自定义Topic类,执行以下操作。
编辑Topic类
单击Topic类对应操作列的编辑。
在定义Topic类对话框,修改描述、设备操作权限和Topic类。
单击确认。
设置是否开启代理订阅
找到操作权限为订阅或发布和订阅的Topic类,单击是否开启代理订阅开关或。
删除Topic类
删除自定义Topic类后,与该自定义Topic相关的设备通信服务不可用、用户业务中断。请谨慎操作。
单击Topic类对应操作列的删除。
单击确认。
带通配符的自定义Topic说明
物联网平台支持自定义Topic类时,使用以下通配符。
由于带通配符的Topic实质为一组Topic的集合,因此对于具备发布或订阅权限的Topic,都不支持直接使用携带通配符的Topic发送具体消息。
例如:带通配符的Topic不支持在设备的Topic列表页面执行发布消息操作,将消息发布到已订阅该Topic的设备。
通配符 | 描述 |
# | #只能出现在Topic的最后一个类目,代表本级及下级所有类目。 例如:自定义Topic |
+ | 代表本级所有类目。 例如:自定义Topic |
自定义Topic通信示例
服务端与设备端通信:
设备与设备通信:
存储自定义Topic通信数据
自定义Topic中数据可流转到热数据存储空间进行存储。您可单击Topic列表上方的点击配置,跳转到数据服务>数据存储页面的热数据存储页签,配置热数据存储规则。具体内容,请参见配置自定义Topic数据存储。
相关API
Topic管理
API | 描述 |
创建产品自定义Topic类。 | |
修改产品自定义Topic类。 | |
查询产品自定义Topic类。 | |
删除产品自定义Topic类。 | |
添加Topic路由表。 | |
查询Topic路由表。 | |
查询Topic反向路由表。 | |
删除Topic路由表。 |
Topic通信
API | 描述 |
为指定设备订阅Topic。 | |
查询设备已订阅的Topic列表。 | |
设置自定义Topic是否支持保留消息广播。 | |
通过自定义Topic向指定设备发布消息,支持向指定产品下订阅了指定自定义Topic的在线设备发送广播消息。 | |
通过自定义Topic向指定产品下的多个设备批量发送消息。 | |
向指定产品所有设备,或向订阅了指定Topic的所有设备发布广播消息。 | |
查询设备上下行消息的详情,包括消息的内容、消息的产生时间、发送消息的Topic等。 |
相关文档
物联网平台要求设备上报消息的数据格式要求为Alink JSON,如果设备的消息格式不是Alink JSON,必须使用消息解析将设备上报的自定义Topic数据解析为Alink JSON格式,通过自定义Topic下发设备的数据格式没有限制。消息解析的概念和使用步骤,请参见什么是消息解析。