# 自定义topic功能使用说明文档

# 1 前置步骤

# 1.1 创建产品设备

链接:快速定位

# 1.2 设备接入阿里智能云平台

链接:快速定位

# 1.3 创建产品自定义topic

(1) 在产品列表选择产品,点击“查看”按钮,进入产品详情页面

image.png

(2)选择topic类列表选项卡,在自定义topic页面,点击“定义topic类”按钮,添加自定义topic

image.png

(3)选择产品设备的操作权限

  • 发布:设备通过topic上报数据到平台
  • 订阅:设备通过topic获取平台下发的数据
  • 发布和订阅:设备通过topic上报数据到平台,并且获取平台下发的数据

image.png

(4)填写topic名称,点击“确认”按钮,添加自定义topic类

image.png

image.png

image.png

(5)可对topic进行修改和删除操作

image.png

# 2 自定义topic上报

# 2.1 编写自定义topic数据格式转换脚本(可忽略)

(1)在产品详情页面,选择“消息解析”选项,选择脚本用途为“自定义topic解析”,自选脚本语言,修改脚本示例中的自定义topic数据转换的方法

image.png

(2)修改脚本后,可在下方选项栏和输入框进行测试

image.png

(3)查看转换结果

image.png

(4)脚本修改完毕后,点击“保存”按钮保存脚本信息

# 2.2 创建服务端订阅接收消息

(1)访问服务端订阅页面,点击“创建订阅”

image.png

(2)填写订阅信息

  • 选择需要服务端订阅的产品

image.png

  • 选择订阅类型为“AMQP”,目前阶段仅支持“AMQP”订阅类型

image.png

  • 选择接收订阅转发消息的消费组,也可以点击右下角的“创建消费组”,添加新的消费组

image.png

  • 勾选推送消息类型“自定义topic上报消息”

image.png

  • 点击“确认”,创建订阅

image.png

(3)启动AMQP客户端获取消息

  • 获取SDK

jar包下载链接:https://aliiot.oss-cn-hangzhou.aliyuncs.com/customerWord/amqp-sdk-0.0.1-jar-with-dependencies.jar

  • 填写SDK配置信息

image.png

username:账号用户名
Password:账号密码
consumerGroupId:客户端所属消费组id
clientId:自定义,用于记录
import com.rabbitmq.client.DeliverCallback;
import org.iot.JwtUtil;


public class RabbitMqCustomer {

    public static void main(String[] args) {
        DeliverCallback deliverCallback = (consumerTag, delivery) -> {
            // 获取队列消息
            String message = new String(delivery.getBody(), "UTF-8");
            // 处理消息
            System.out.println(" [x] Received '" + message + "'");
        };
        // 配置RabbitmqMQ验证信息
        JwtUtil.consumer("username","Password","consumerGroupId","clientId",deliverCallback);
    }

}
  • 启用SDK客户端

# 2.3 使用设备上报消息

(1)设备发送消息

image.png

(2)SDK接收消息

image.png

# 3 自定义topic下发

# 3.1 平台自定义topic下发消息

(1)设备订阅自定义topic

在产品详情页面添加自定义topic类后,可在该产品下设备的topic列表页面查看设备的topic

image.png

设备订阅自定义topic

image.png

(2)平台下发消息

image.png

(3)设备接收消息

image.png

# 3.2 自定义topic使用OpenApi下发到指定设备

链接:快速定位

# 3.3 自定义topic使用OpenApi批量下发到指定产品下的设备

链接:快速定位