设备连接物联网平台后,数据直接上报至物联网平台,平台上的数据可以通过AMQP通道流转至您的服务器。本文为您介绍通过配置AMQP服务端订阅,实现企业服务器通过接入AMQP客户端,接收路灯设备数据的完整流程。

前提条件

已接入设备和上报数据。具体操作,请参见设备接入和上报数据

配置AMQP服务端订阅

  1. 物联网平台控制台实例概览页面,单击实例iot测试环境
  2. 为消息消费端配置消费组身份,用于企业服务器通过消费组获取转发的消息。
    1. 在左侧导航栏,选择规则引擎 > 服务端订阅,单击消费组列表页签。
    2. 单击创建消费组
    3. 创建消费组对话框中,设置消费组名称为温控器数据接收,单击确认
      创建消费组成功后,跳转到消费组详情页面,查看消费组ID。您需复制并保存消费组ID值,用于AMQP客户端接入。消费组ID
  3. 为家庭温控器产品配置服务端订阅,用于您的服务器直接订阅产品下多种类型的消息。
    1. 在左侧导航栏,选择规则引擎 > 服务端订阅
    2. 服务端订阅页面的订阅列表页签下,单击创建订阅
    3. 创建订阅对话框,设置参数后单击确认
      参数 说明
      产品 选择家庭温控器
      订阅类型 选择AMQP
      消费组 选择上一步创建的温控器数据接收
      推送消息类型 选择设备上报消息物模型历史数据上报。更多消息类型,请参见设置订阅
    您也可以通过云产品流转规则,将数据转发至AMQP订阅的消费组,使用AMQP客户端接收消息。例如,将流转规则温控器数据流转中已处理的物模型数据上报内容,转发到AMQP订阅的消费组温控器数据接收中。
    1. 在左侧导航栏,选择规则引擎 > 云产品流转
    2. 单击规则温控器数据流转对应的查看,进入数据流转规则页面,单击转发数据一栏对应的添加操作
    3. 添加操作对话框中,选择操作为发布到AMQP服务端订阅消费组,消费组为温控器数据接收,单击确认
      添加操作

AMQP客户端接入示例

示例使用Java开发语言,推荐使用Apache Qpid JMS客户端。您可访问Qpid JMS 0.57.0,查看Qpid JMS客户端使用说明。

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

  1. 下载Demo代码包,并解压。
  2. 打开IntelliJ IDEA,导入Demo包中的示例工程amqp-demo
    pom.xml文件中,已添加Maven依赖,下载Qpid JMS客户端。
  3. src/main/java/com.aliyun.iotx.demo目录下AmqpClient.java文件中,参照下表,修改JMS客户端接入物联网平台代码中的参数值。
    修改参数值
    参数 示例 说明
    accessKey LTAI4GFGQvKuqHJhFa******

    登录物联网平台控制台,将鼠标移至账号头像上,然后单击AccessKey管理,获取AccessKey ID和AccessKey Secret。

    说明 如果使用RAM用户,您需授予该RAM用户管理物联网平台的权限(AliyunIOTFullAccess),否则将连接失败。授权方法请参见授权RAM用户访问物联网平台
    accessSecret iMS8ZhCDdfJbCMeA005sieKe******
    consumerGroupId VWhGZ2QnP7kxWpeSSjt****** 已创建的温控器数据接收消费组ID。请参见上文配置AMQP服务端订阅的步骤2。
    iotInstanceId "iot-cn-6ja***" iot测试环境的实例ID。

    您可在控制台的实例概览页面查看。

    clientId 12345 客户端ID,可自定义,长度不可超过64个字符。建议设置为您的AMQP客户端所在服务器UUID、MAC地址、IP等唯一标识,方便您识别区分不同的客户端。

    AMQP客户端接入成功后,在控制台的温控器数据接收的消费组详情页面,显示该参数。

    connectionCount 4 启动AMQP客户端的连接数,最大不超过64个。用于实时消息推送的扩容。

    消费组详情页面会以${clientId}+"-"+数字形式,显示连接的客户端。其中数字最小值为0。

    host iot-***.amqp.iothub.aliyuncs.comm 您购买实例成功后,保存的AMQP接入域名,请参见创建企业版实例

    您可在控制台中实例iot测试环境实例详情页面,单击查看开发配置,单击AMQP页签查看。

  4. 运行AmqpClient.java示例代码后,返回类似如下日志信息,表示AMQP客户端已接入物联网平台并成功接收消息。
    说明 本示例Demo代码中,添加了结束程序的代码(Thread.sleep(60 * 1000);),即程序启动成功,运行一分钟后会结束。实际场景中,您可根据需要自行设置运行时间。
    运行结果
    返回参数:
    参数 参数值 说明
    topic /***********/******/thing/event/property/post 设备属性上报的Topic
    messageId 1324198300680719360 消息的ID
    content {"temperature":23,"humidity":21,"time":1604548451951} 消息的内容

    代码运行成功后,您可在服务端订阅中,查看消费组状态的基本信息。

    具体操作,请参见管理消费组

    消费组状态

查看日志

所有配置完成后,登录物联网平台控制台,在企业实例下的监控运维 > 日志服务中,从产品列表选择家庭温控器,可在云端运行日志页签下,查看完整的日志信息。

日志信息

后续步骤

云端下发指令