全部产品
Search
文档中心

阿里云物联网平台:使用自定义Topic通信

更新时间:Nov 23, 2023

产品的自定义Topic类会自动映射为该产品下所有设备的自定义Topic。本文介绍如何为产品自定义Topic类及自定义Topic的使用和通信说明。

背景信息

物联网平台Topic定义和使用说明,请参见什么是Topic

添加自定义Topic类

  1. 登录物联网平台控制台

  2. 实例概览页签的全部环境下,找到对应的实例,单击实例卡片。

  3. 在左侧导航栏,选择设备管理 > 产品

  4. 产品页面,找到需要自定义Topic类的产品,并单击对应操作栏中的查看按钮。

  5. 产品详情页面,单击Topic类列表 > 自定义Topic > 定义Topic类

  6. 配置参数,单击确认

    参数

    描述

    设备操作权限

    设备对该Topic的操作权限,可设置为发布订阅发布和订阅

    Topic类

    Topic格式必须以/进行分层,区分每个类目。类目命名只能包含字母、数字和下划线(_),每级类目不能为空。

    • 对于云网关产品,Topic类完全由用户自定义输入。支持使用通配符+#,支持使用${deviceName}通配DeviceName。

    • 对于非云网关产品:

      • 只有设备操作权限为订阅时,才可以使用通配符+#,以便设备实现批量订阅Topic。

      • 自定义Topic类前三个类目已固定为/${productKey}/${deviceName}/user/,需将Topic类填充完整。

    说明

    通配符使用方法,请参见带通配符的自定义Topic

    是否开启代理订阅

    设备操作权限为订阅发布和订阅,可开启代理订阅。

    开启代理订阅后,设备与物联网平台建连时,物联网平台查询已开启代理订阅的Topic,帮助设备完成订阅。

    是否开启压缩或解压缩

    尊享型企业版实例下,可开启自定义Topic数据压缩或解压缩。数据压缩功能,请参见数据压缩

    描述

    可输入文字,描述该Topic类,用于区分不同Topic类的功能。

管理Topic类

您可在自定义Topic的Topic类列表中,找到对应自定义Topic类,执行以下操作。

操作

步骤

编辑Topic类

  1. 单击Topic类对应操作列的编辑

  2. 定义Topic类对话框,修改描述设备操作权限Topic类

  3. 单击确认

删除Topic类

警告

删除自定义Topic类后,与该自定义Topic相关的设备通信服务不可用、用户业务中断。请谨慎操作。

  1. 单击Topic类对应操作列的删除

  2. 单击确认

设置是否开启代理订阅

找到操作权限订阅发布和订阅的Topic类,单击是否开启代理订阅开关image.pngimage.png

带通配符的自定义Topic

物联网平台支持自定义Topic类时,使用以下通配符。

说明

由于带通配符的Topic实质为一组Topic的集合,因此对于具备发布或订阅权限的Topic,都不支持直接使用携带通配符的Topic发送具体消息。

例如:带通配符的Topic不支持在设备的Topic列表页面执行发布消息操作,将消息发布到已订阅该Topic的设备。

通配符

描述

#

#只能出现在Topic的最后一个类目,代表本级及下级所有类目。

例如:自定义Topic/a1aycMA****/${deviceName}/user/#。设备device1订阅/a1aycMA****/device1/user/#,表示订阅以/a1aycMA****/device1/user/为开头的全部Topic,包含/a1aycMA****/device1/user/update/a1aycMA****/device1/user/update/error等Topic。

+

代表本级所有类目。

例如:自定义Topic/a1aycMA****/${deviceName}/user/+/error。设备device1订阅/a1aycMA****/device1/user/+/error,表示订阅/a1aycMA****/device1/user/get/error/a1aycMA****/device1/user/update/error等Topic。

自定义Topic通信说明

  • 服务端到设备端

    服务端调用Pub,可向指定的自定义Topic发布消息。设备通过订阅该Topic,接收来自服务端的消息。

  • 设备端到服务端

    设备端向自定义Topic发布消息,服务端可通过物联网平台的AMQP订阅或云产品流转功能,接收来自设备端的消息。

使用自定义Topic通信的示例,请参见使用自定义Topic进行通信