物联网平台服务端订阅支持将设备消息发送至消息服务(MNS),云端应用通过监听MNS队列,获取设备消息。本章讲解使用MNS订阅设备消息的配置方法。
前提条件
如果使用子账号,子账号需拥有AliyunIOTAccessingMNSRole
角色权限。
操作步骤
- 在物联网平台控制台上,为产品配置服务端订阅,实现物联网平台将消息自动转发至MNS。
- 登录物联网平台控制台。
- 在左侧导航栏,选择规则引擎 > 服务端订阅。
- 在服务端订阅页的订阅列表页签下,单击创建订阅。
- 在创建订阅对话框中,选择订阅类型为MNS,并完成其他设置后,单击确认。
- 在弹出的确认对话框中,单击确定。
物联网平台将自动创建MNS消息队列,名称格式为
aliyun-iot-${yourProductKey}
。您在配置监听MNS队列时,需配置为该队列。MNS会收取费用,具体计费方式,请参见MNS计费。
说明 如果删除已创建的MNS服务端订阅,对应的MNS队列也会自动删除。
- 配置监听MNS队列,以接收设备消息。
以下示例中,使用MNS Java SDK监听消息。
下载MNS SDK Demo,请访问MNS文档。
- 在pom.xml文件中,添加如下依赖安装MNS Java SDK。
<dependency> <groupId>com.aliyun.mns</groupId> <artifactId>aliyun-sdk-mns</artifactId> <version>1.1.8</version> <classifier>jar-with-dependencies</classifier> </dependency>
- 配置接收消息时,需填入以下信息。
CloudAccount account = new CloudAccount( $AccessKeyId, $AccessKeySecret, $AccountEndpoint);
- $AccessKeyId和$AccessKeySecret需替换为您的阿里云账号访问API的基本信息。登录阿里云控制台,光标移至阿里云账号头像上,然后单击AccessKey管理,创建或查看AccessKey信息。
- $AccountEndpoint需填写实际的Endpoint值。在MNS控制台,单击获取Endpoint获取。
- 填写接收设备消息的逻辑。
MNSClient client = account.getMNSClient(); CloudQueue queue = client.getQueueRef("aliyun-iot-a1xxxxxx8o9"); //请输入IoT自动创建的队列名称 while (true) { // 获取消息 Message popMsg = queue.popMessage(10); //长轮询等待时间为10秒 if (popMsg != null) { System.out.println("PopMessage Body: "+ popMsg.getMessageBodyAsRawString()); //获取原始消息 queue.deleteMessage(popMsg.getReceiptHandle()); //从队列中删除消息 } else { System.out.println("Continuing"); } }
- 运行程序,完成对MNS队列的监听。
- 在pom.xml文件中,添加如下依赖安装MNS Java SDK。
- 启动设备,上报消息。
设备端SDK开发,请参见Link Kit SDK文档。
- 检查云端应用是否监听到设备消息。若成功监听,将获得如下所示消息代码。
{ "messageid":" ",//消息标识 "messagetype":"upload", "topic":"//信息来源Topic, "payload": //Base64编码后的数据 "timestamp": //时间戳 }
参数 说明 messageid 物联网平台生成的消息ID。 messagetype 消息类型。 - status:设备状态通知
- upload:设备上报消息
- device_lifecycle:设备生命周期变更通知
- topo_lifecycle:设备拓扑关系变更
- topo_listfound:网关发现子设备上报
topic 服务端监听到的信息来源的物联网平台Topic。 payload Base64编码的消息数据。 payload数据格式,请参见数据格式。
timestamp 时间戳,以Epoch时间表示。
原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/33358.html
相关推荐
-
阿里云数据库 RDS 版AllocateInstancePublicConnection
调用AllocateInstancePublicConnection接口申请实例的外网地址。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。…
-
阿里云消息服务 MNSQueue
队列是消息存储的目的地,队列可以分成普通队列和延时队列两类。 如果发送消息时不指定消息延时参数,被发送到普通队列的消息立刻可以被消费,而发送到延时队列需要经过设定的延时时间后才能被…
-
阿里云物联网边缘计算云端发布
驱动支持云端发布和内置发布两种形式,云端发布驱动是将驱动文件托管到控制台中驱动管理页面,内置发布是在本地管理驱动文件。本文主要描述通过云端发布使用驱动的步骤。 前提条件 已根据驱动…
-
阿里云物联网平台消息通信计费
物联网平台收取消息通信费用。按消息数计费。 计费项目 具体计费项目请见下表。具体的收费接口请见本文附录章节。 项目 描述 消息传输费用 (设备端) 设备调用Pub接口发的消息 设备…
-
阿里云智联车管理云平台CountYunIdInfo
.icms-tree-table-trigger { display: inline-block; width: 17px; height: 17px; margin-right:…
-
阿里云三维空间重建创建全景空间视频案例
本文以某个普通住宅为例创建一个全景空间视频,以指导您创建类似的空间模型。 前提条件 登录阿里云账户; 已开通三维空间重建产品服务。 已准备好所需的图片。 操作步骤 登录三维空间重建…
-
阿里云容器服务构建和推送自定义 caffe 镜像
目前,深度学习解决方案还未内置对 caffe 框架的支持,但是训练框架支持自定义镜像,提供了灵活性。您可以通过指定自定义镜像的方式,使用您自己的 caffe 框架来进行模型训练。 …
-
阿里云ElasticsearchCurator操作指南
Curator是Elasticsearch官方的一个索引管理工具,提供了删除、创建、关闭、段合并索引等功能。本文档为您介绍Curator的使用方法,包括安装、单命令行执行、定时执行…
-
阿里云文件存储 HDFS在文件存储HDFS上使用Apache Spark
本文档主要介绍在文件存储HDFS上搭建及使用Apache Spark的方法。 准备工作 开通文件存储HDFS服务并创建文件系统实例和挂载点,详情请参见HDFS快速入门。 在计算节点…
-
阿里云IoT设备身份认证设备端错误代码
错误码 错误含义 0 IROT_SUCCESS -1 IROT_ERROR_GENERIC -2 IROT_ERROR_BAD_PARAMETERS -3 IROT_ERROR_S…