Skip to content

AMQP SDK接入示例

AMQP主要用于SaaS系统对接集成,实现SaaS应用实时接收设备上行数据。通过SDK可完成快速接入。

前置步骤

1、在使用AMQP服务前,需先在SaaS开发->SaaS管理菜单下创建SaaS应用。

2、在SaaS详情->消息订阅->队列列表页面中创建或使用已有的队列,并获取队列名称,后续SDK初始化时需填入参数。

3、在SaaS详情->消息订阅->订阅列表页面中创建产品级订阅,并按需配置需要推送的事件类型。(备注:不同数据级别可订阅的事件类型不同)

4、若需要通过SaaS应用管理消息订阅功能,请在SaaS详情->服务页面中开通并授权消息订阅服务包。

5、获取AccessKey与AccessSecret,后续SDK初始化时需填入参数。

开发环境准备

示例使用的开发环境如下:

● 操作系统:Windows10
● JDK版本:JDK8
● 集成开发环境:IntelliJ IDEA社区版

SDK示例

1.下载jar包,本例中使用maven引用

<dependency>
    <groupId>com.quectel.aiot</groupId>
    <artifactId>quecloud-sdk-dev-msg</artifactId>
    <version>1.9.0.RELEASE</version>
</dependency>

2.初始化SDK

创建AmqpClient对象,存放AccessKey/AccessSecret、connectionUrl、queueName

3.调用步骤:

a).完成SDK初始化。获取对应的AmqpClient对象

b).调用AmqpClient对象的start方法开始链接rabbitmq并接收消息。

sdk提供两种方式处理接收到的消息。一、通过DeliverCallback类自定义处理消息。二、实现HandleMessage。HandleMessage中每个方法对应一种上行数据的类型,例如设备上下线、ACK确认消息等。

3.代码示例

public void msgUpLinkDemo(){
    AmqpClient amqpClient = new AmqpClient("${accessKey}","${accessSecret}","${connectionUrl}","${queueName}");
    HandleMessage handleMessage = new HandleMessageImpl();
    amqpClient.start(handleMessage);
}

具体demo code详见github:

https://github.com/thridparty-cloud2/quecloud-sdk-dev-msg-demonstration.git

4.HandleMessage对象中方法对应的上行数据类型

方法名称消息类型
upAndDownLine上下线事件
deviceStatus设备状态
upLink上行,透传命令上行
downLink下行,透传命令下行
reqackACK确认消息
mAttrRead下行,物模型属性读命令下发
mAttrReadresp上行,物模型属性读命令响应
mAttrWrite物模型属性写命令下发
mAttrReport上行,对应物模型数据包协议的Event消息类型,物模型属性上报
mServInput下行,物模型服务执行请求,对应透传数据包协议的Write消息类型
mServOutput上行,物模型服务执行响应,对应透传数据包协议的Event消息类型
mEventInfo上行,对应物模型数据包协议的Event消息类型,物模型事件信息上报
mEventWarn上行,对应物模型数据包协议的Event消息类型,物模型事件告警上报
mEventError上行,对应物模型数据包协议的Event消息类型,物模型事件故障上报
locationMode设置定位信息发送模式
locationQuery查询定位信息,为空,则以保存的MODE返回
locationInfoRaw定位信息查询的响应、定位信息的主动上报
locationInfoKV定位信息查询的响应、定位信息的主动上报
enduserUserAdd终端用户信息变更-新增
enduserUserUpdate终端用户信息变更-修改
enduserUserDelete终端用户信息变更-删除
enduserUserBind终端用户设备绑定信息
productAddAndDel产品新增/删除/产品授权信息
productUpdate产品信息变更
deviceModelInfo产品物模型信息变更
deviceAddAndDel设备新增/删除
deviceUpdate设备信息修改

错误码

具体详见错误码集合