# 1 产品

# 1.1 创建产品

image.png 按照提示填写产品信息 image.png image.png image.png

# 1.2 发布产品

image.png image.png 确认无误后发布产品 image.png image.png image.png

# 2 消费组

# 2.1 创建消费组

根据提示访问消费组页面 image.png image.png 可点击查看消费组详情 image.png 可修改消费组基本信息 image.png

# 3 服务端订阅

# 3.1 创建订阅

注意:一个产品只能创建一个服务端订阅 image.png 按指示输入订阅信息 image.png image.png 选择消费组 image.png 可选择多个消费组 image.png 也可以添加新的消费组 image.png 消息类型可以多选,主要测试设备属性上报 image.png 点击确认,创建订阅成功 image.png image.png

# 3.2 修改订阅

image.png 可修改订阅的消费组和推送消息类型 image.png

# 4 设备

# 4.1 创建设备

注意:要先发布产品才能创建对应的设备 image.png 选择对应产品,设备编号可手动输入大小写和数字,也可以点击自动生成 image.png image.png

# 4.2 接入设备

# 4.2.1 查看设备MQTT连接信息

image.png image.png image.png

{"clientId":"S&D1798333207855521792O9XU349NX1&250&1798333207855521792",
 "username":"B73ICQU285",
 "passwd":"P93I0981J93WL6ZM",
 "port":1883,
 "mqttHostUrl":"aliyun.mqtt.aliyun.yoo.cn"}

# 4.2.2 查看设备发布和订阅的Topic信息

查看设备Topic列表 image.png

设备发布(以"/post"结尾)
属性上报:/250/D1798333207855521792O9XU349NX1/property/post

设备订阅:(以"/get"结尾)
服务下发:/250/D1798333207855521792O9XU349NX1/function/get

# 4.2.3 配置设备连接

image.png 设备接入成功,设备变为在线状态 image.png

# 4.3 设备上报

按照平台数据格式上报 image.png image.png

# 5 SDK使用

# 5.1 下载SDK

https://aliiot.oss-cn-hangzhou.aliyuncs.com/customerWord/amqp-sdk-0.0.1-jar-with-dependencies.jar (opens new window)

# 5.2 获取SDK配置参数

username:账号用户名
Password:账号密码
consumerGroupId:客户端所属消费组id
clientId:自定义,用于记录

image.png

# 5.3 SDK示例代码

image.png

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);
    }
}

# 5.4 启用SDK

image.png image.png SDK持续监听队列,获取消息

image.png

# 5.5 处理转发消息

DeliverCallback deliverCallback = (consumerTag, delivery) -> {
                // 获取队列消息
                String message = new String(delivery.getBody(), "UTF-8");
                // 处理消息
                System.out.println(" [x] Received '" + message + "'");
            };

自定义消息处理