# 自定义topic功能使用说明文档
# 1 前置步骤
# 1.1 创建产品设备
链接:快速定位
# 1.2 设备接入阿里智能云平台
链接:快速定位
# 1.3 创建产品自定义topic
(1) 在产品列表选择产品,点击“查看”按钮,进入产品详情页面

(2)选择topic类列表选项卡,在自定义topic页面,点击“定义topic类”按钮,添加自定义topic
.png)
(3)选择产品设备的操作权限
- 发布:设备通过topic上报数据到平台
- 订阅:设备通过topic获取平台下发的数据
- 发布和订阅:设备通过topic上报数据到平台,并且获取平台下发的数据
.png)
(4)填写topic名称,点击“确认”按钮,添加自定义topic类
.png)
.png)
.png)
(5)可对topic进行修改和删除操作
.png)
# 2 自定义topic上报
# 2.1 编写自定义topic数据格式转换脚本(可忽略)
(1)在产品详情页面,选择“消息解析”选项,选择脚本用途为“自定义topic解析”,自选脚本语言,修改脚本示例中的自定义topic数据转换的方法
.png)
(2)修改脚本后,可在下方选项栏和输入框进行测试
.png)
(3)查看转换结果
.png)
(4)脚本修改完毕后,点击“保存”按钮保存脚本信息
# 2.2 创建服务端订阅接收消息
(1)访问服务端订阅页面,点击“创建订阅”
.png)
(2)填写订阅信息
- 选择需要服务端订阅的产品
.png)
- 选择订阅类型为“AMQP”,目前阶段仅支持“AMQP”订阅类型
.png)
- 选择接收订阅转发消息的消费组,也可以点击右下角的“创建消费组”,添加新的消费组
.png)
- 勾选推送消息类型“自定义topic上报消息”
.png)
- 点击“确认”,创建订阅
.png)
(3)启动AMQP客户端获取消息
- 获取SDK
jar包下载链接:https://aliiot.oss-cn-hangzhou.aliyuncs.com/customerWord/amqp-sdk-0.0.1-jar-with-dependencies.jar
- 填写SDK配置信息
.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)设备发送消息
.png)
(2)SDK接收消息
.png)
# 3 自定义topic下发
# 3.1 平台自定义topic下发消息
(1)设备订阅自定义topic
在产品详情页面添加自定义topic类后,可在该产品下设备的topic列表页面查看设备的topic
.png)
设备订阅自定义topic
.png)
(2)平台下发消息
.png)
(3)设备接收消息
.png)
# 3.2 自定义topic使用OpenApi下发到指定设备
链接:快速定位
# 3.3 自定义topic使用OpenApi批量下发到指定产品下的设备
链接:快速定位