完成设备端开发后,您需要对服务端进行开发,来接收物联网平台的设备数据。本文以Java脚本为例,演示服务端接收设备数据的流程。

准备开发环境

本文使用Java开发环境如下:

业务服务器接收设备数据

服务器通过AMQP客户端接收消息,需配置AMQP客户端接入物联网平台,监听设备消息,请参见AMQP客户端接入说明Java SDK接入示例

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

参照以下步骤,完成AMQP客户端开发。

  1. 下载Demo代码包,并解压。
  2. 打开IntelliJ IDEA,导入Demo包中的示例工程amqp-demo
    在pom.xml文件中,已添加Maven依赖,下载Qpid JMS客户端。
  3. src/main/java/com.aliyun.iotx.demo目录下AmqpClient.java文件中,参照下表,修改JMS客户端接入物联网平台代码中的参数值。
    private final static Logger logger = LoggerFactory.getLogger(AmqpClient.class);
    private static String accessKey = "${YourAccessKey}";
    private static String accessSecret = "${YourAccessSecret}";
    private static String consumerGroupId = "${YourConsumerGroupId}";
    
    //iotInstanceId:实例ID。
    private static String iotInstanceId = "${YourIotInstanceId}";
    
    //控制台服务端订阅中消费组状态页客户端ID一栏会显示clientId参数。
    //建议使用机器UUID、MAC地址、IP等唯一标识等作为clientId。便于您区分识别不同的客户端。
    private static String clientId = "${YourClientId}";
    
    //${YourHost}为接入域名,请参见AMQP客户端接入说明文档。
    private static String host = "${YourHost}";
    
    // 指定单个进程启动的连接数
    // 单个连接消费速率有限,请参考使用限制,最大64个连接
    // 连接数和消费速率及rebalance相关,建议每500QPS增加一个连接
    private static int connectionCount = 4;
    参数示例说明
    accessKeyLTAI4GFGQvKuqHJhFa******

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

    说明 如果使用RAM用户,您需授予该RAM用户管理物联网平台的权限(AliyunIOTFullAccess),否则将连接失败。授权方法请参见授权RAM用户访问物联网平台
    accessSecretiMS8ZhCDdfJbCMeA005sieKe******
    consumerGroupIdVWhGZ2QnP7kxWpeSSjt******已创建的手持体温计数据消费组消费组ID,请参见云端配置开发的步骤6。
    iotInstanceId"iot-cn-6ja***"设备所属实例的ID。

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

    • 若有ID值,必须传入该ID值。
    • 若无实例概览页面或ID值,传入空值,即iotInstanceId = ""
    clientId12345客户端ID,可自定义,长度不可超过64个字符。建议设置为您的AMQP客户端所在服务器UUID、MAC地址、IP等唯一标识,方便您识别区分不同的客户端。

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

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

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

    hostiot-***.amqp.iothub.aliyuncs.comAMQP接入域名,请参见查看实例终端节点

后续步骤

整体联调