更新时间:2023-12-27 GMT+08:00
分享

自定义Topic通信

概述

使用MQTT协议接入的设备,平台和设备之间基于Topic进行通信。Topic分为自定义Topic和系统Topic。系统Topic为平台预置的基本通信Topic,您也可以根据实际业务需要,在平台自定义Topic。

使用场景

  • 设备端向自定义Topic发布消息,应用端通过数据转发简介功能接收消息。
  • 应用端调用下发设备消息接口,向指定的自定义Topic发布消息。设备通过订阅该Topic,接收来自服务端的消息。

Topic分类

表1 topic分类

Topic类别

描述

系统Topic

平台预先定义了各种设备和平台通信的Topic,具体Topic列表和功能说明可参考Topic定义

自定义Topic

用户可以自定义Topic,设备和平台间可以基于用户自定义的Topic进行通信。

自定义topic分类:

  • 在产品中定义需要使用的Topic,这类Topic有$oc/devices/{device_id}/user/前缀,消息上报或者消息下发时平台会校验Topic是否在产品中定义,未在产品中定义的Topic会被平台拒绝。使用方式可以参考链接使用自定义Topic进行通信的最佳实践。
  • 使用非$oc开头的自定义Topic,如/aircondition/data/up进行消息通信,这类Topic平台不校验Topic权限,根据MQTT协议定义的规则进行Topic的消息上下行通信。使用方式可以参考链接设备自定义Topic迁移上云

使用限制

  • 每个产品模型最多支持50个自定义Topic。
  • 自定义Topic只支持消息通信,不支持属性通信。
  • MQTT自定义Topic支持的最大长度为128字节。

操作步骤

  1. 访问设备接入服务,单击“管理控制台 ”进入设备接入控制台。
  2. 选择MQTT协议类产品,在产品详情页中,选择Topic管理 > 自定义Topic,单击“新增自定义Topic”。

    图1 新增自定义Topic

  3. 在弹出的页面中,选择设备操作权限,填写Topic名称。

    图2 自定义Topic
    表2 页面参数说明

    参数名称

    描述

    Topic名称

    Topic的前缀已经规定好,固定为:$oc/devices/{device_id}/user/,其中{device_id}为标识符变量,实际发布和订阅过程中需要替换为实际的设备ID。用户自定义Topic的格式必须以“/”进行分层。

    长度限制为1-64位,只允许输入数字、大小写字母、下划线、斜杠符。其中,斜杠符不能连续。

    注:自定义Topic不支持自定义变量,例如$oc/devices/{device_id}/user/setting/{type},其中的{type}为自定义变量,当前不支持这种使用方式。

    设备操作权限

    • 发布:设备侧消息上报时,可按配置中自定义的Topic进行消息上报;数据流转时,设备消息中会携带Topic参数标识该消息从哪个Topic上报。

    • 订阅:应用侧消息下发时,可在消息内容中指定此消息下发使用哪个Topic;消息发往设备时,可以根据指定的Topic下发。

    • 发布和订阅:同时具备发布和订阅的权限。

    描述

    关于该Topic的描述。

  4. 单击“确定”,完成新增自定义Topic。

    自定义Topic添加成功后,您可以在自定义Topic列表执行修改和删除操作。

查看使用自定义Topic进行通信的最佳实践,了解自定义Topic的使用方法。如果无法使用前缀为$oc/devices/{device_id}/user/的Topic,需要完全自定义Topic内容,可以参考链接设备自定义TOPIC迁移上云

分享:

    相关文档

    相关产品