完成设备端开发后,您需要对服务端进行开发,来接收物联网平台的设备数据。本文以Java脚本为例,演示服务端接收设备数据的流程。
准备开发环境
本文使用Java开发环境如下:
操作系统:Windows 10 64位
JDK版本:JDK8
集成开发环境:IntelliJ IDEA社区版
业务服务器接收设备数据
服务器通过AMQP客户端接收消息,需配置AMQP客户端接入物联网平台,监听设备消息,请参见AMQP客户端接入说明、Java SDK接入示例。
示例使用Java开发语言,推荐使用Apache Qpid JMS客户端。您可访问Qpid JMS 0.57.0,查看Qpid JMS客户端使用说明。
参照以下步骤,完成AMQP客户端开发。
下载Demo代码包,并解压。
打开IntelliJ IDEA,导入Demo包中的示例工程amqp-demo。
在pom.xml文件中,已添加Maven依赖,下载Qpid JMS客户端。
在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}"; // 指定单个进程启动的连接数 // 单个连接消费速率有限,请参考使用限制,最大128个连接 // 连接数和消费速率及rebalance相关,建议每500QPS增加一个连接 private static int connectionCount = 4;
参数
示例
说明
accessKey
LTAI4GFGQvKuqHJhFa******
阿里云主账号或对应RAM用户的AccessKey ID和AccessKey Secret。
登录物联网平台控制台,将鼠标移至账号头像上,然后单击AccessKey管理,获取AccessKey ID和AccessKey Secret。
accessSecret
iMS8ZhCDdfJbCMeA005sieKe******
consumerGroupId
VWhGZ2QnP7kxWpeSSjt******
已创建的手持体温计数据消费组消费组ID,请参见云端配置开发的步骤6。
iotInstanceId
"iot-cn-6ja***"
设备所属实例的ID。
您可在控制台的实例概览页面查看。
若有ID值,必须传入该ID值。
若无ID值,传入空值,即
iotInstanceId = ""
。
clientId
12345
客户端ID,可自定义,长度不可超过64个字符。建议设置为您的AMQP客户端所在服务器UUID、MAC地址、IP等唯一标识,方便您识别区分不同的客户端。
AMQP客户端接入成功后,在控制台的手持体温计数据消费组的消费组详情页面,显示该参数。
connectionCount
4
启动AMQP客户端的连接数,最大不超过128个。用于实时消息推送的扩容。
消费组详情页面会以
${clientId}+"-"+数字
形式,显示连接的客户端。其中数字最小值为0。host
iot-***.amqp.iothub.aliyuncs.com
AMQP接入域名,请参见查看和配置实例终端节点信息(Endpoint)。