阿里云物联网平台AMQP服务端订阅NodeJS Demo

简介: 服务端可以直接订阅产品下所有类型的消息:设备上报消息、设备状态变化通知、网关发现子设备上报、设备生命周期变更、设备拓扑关系变更。配置服务端订阅后,物联网平台会将产品下所有设备的已订阅类型的消息转发至您的服务端。本文主要演示如果使用NodeJs SDK进行AMQP服务端订阅


Step By Step


配置服务端订阅

1、创建消费组
图片.png


2、创建订阅
图片.png


参数获取

3、ConsumerGroupId获取位置
图片.png


4、AccessKeyId、AccessKeySecret及Uid获取


参考地址:阿里云常见参数获取位置



5、iotInstanceId 独享实例需要指定,公共实例配置为空即可。
图片.png


6、ClientId可以任意指定,例如设置为:tarodemo。


7、Host: ${uid}.iot-amqp.${regionId}.aliyuncs.com


例如:184*.iot-amqp.cn-shanghai.aliyuncs.com


SDK 安装

npm install rhea


图片.png


Code Sample

const container = require('rhea');
const crypto = require('crypto');

//建立连接。
var connection = container.connect({

//接入域名,请参见AMQP客户端接入说明文档。
'host': '18482************.iot-amqp.cn-shanghai.aliyuncs.com',
'port': 5671,
'transport':'tls',
'reconnect':true,
'idle_time_out':60000,
//userName组装方法,请参见AMQP客户端接入说明文档。其中的iotInstanceId,购买的实例请填写实例ID,公共实例请填空字符串""。
//'username':'${YourClientId}|authMode=aksign,signMethod=hmacsha1,timestamp=1573489088171,authId=${YourAccessKeyId},iotInstanceId=${YourIotInstanceId},consumerGroupId=${YourConsumerGroupId}|', 
'username':'tarodemo|authMode=aksign,signMethod=hmacsha1,timestamp=1573489088171,authId=LTAIOZZgYXPsMbDA,iotInstanceId=,consumerGroupId=R45CIUGUE3LJie1uaFjI000100|', 
//计算签名,password组装方法,请参见AMQP客户端接入说明文档。
//'password': hmacSha1('${YourAccessKeySecret}', 'authId=${YourAccessKeyId}&timestamp=1573489088171'),
'password': hmacSha1('v7C***********', 'authId=**********&timestamp=1573489088171'),

});

//创建Receiver-Link。
var receiver = connection.open_receiver();

//接收云端推送消息的回调函数。
container.on('message', function (context) {

var msg = context.message;
var messageId = msg.message_id;
var topic = msg.application_properties.topic;
var content = Buffer.from(msg.body.content).toString();

// 输出内容
console.log(content);

//发送ack,注意不要在回调函数有耗时逻辑。
context.delivery.accept();

});

//计算password签名。
function hmacSha1(key, context) {

return Buffer.from(crypto.createHmac('sha1', key).update(context).digest())
    .toString('base64');

}


测试效果

图片.png


参考链接


Node.js SDK接入示例
阿里云常见参数获取位置


相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
4月前
|
消息中间件 DataWorks 物联网
MQTT问题之接入阿里云物联网平台如何解决
MQTT接入是指将设备或应用通过MQTT协议接入到消息服务器,以实现数据的发布和订阅;本合集着眼于MQTT接入的流程、配置指导以及常见接入问题的解决方法,帮助用户实现稳定可靠的消息交换。
352 1
|
2月前
|
存储 运维 监控
阿里云物联网平台的优势
【7月更文挑战第19天】阿里云物联网平台的优势
53 1
|
1月前
|
缓存 JavaScript 前端开发
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)更新时间(2020-10-29)
|
4月前
|
Cloud Native 安全 物联网
【阿里云云原生专栏】云边端一体化:阿里云如何利用云原生技术赋能物联网
【5月更文挑战第22天】阿里云借助云原生技术赋能物联网,实现云边端一体化,提升系统弹性与敏捷性。通过容器化部署,保证高可用性与可靠性。在智能交通等领域,阿里云提供高效解决方案,实现实时数据分析与决策。代码示例展示如何使用阿里云服务处理物联网数据。同时,阿里云重视数据安全,采用加密和访问控制保障数据隐私。丰富的工具和服务支持开发者构建物联网应用,推动技术广泛应用与发展。
263 1
|
4月前
|
消息中间件 存储 JavaScript
阿里云IOC物联网异步处理基础概念
该内容介绍了异步处理基础和消息队列的相关概念。首先,同步处理指任务完成后才能执行其他操作,而异步则允许任务并行执行,不阻塞程序。异步能提高系统并发性和响应性,但也增加复杂性和资源消耗。接着,提到了消息队列,包括生产者、消费者、队列、broker和topic等概念,并指出在IoT中,设备作为生产者发送消息到特定topic,消费者从队列获取数据。最后,简要介绍了AMQP协议,它是用于应用程序间消息传递的开放标准,常用于分布式系统和物联网,如RabbitMQ和Apache Qpid。课程将以Apache Qpid为例接收IoT数据。
194 6
阿里云IOC物联网异步处理基础概念
|
4月前
【开源视频联动物联网平台】vertx写一个mqtt服务端
【开源视频联动物联网平台】vertx写一个mqtt服务端
110 1
|
4月前
|
消息中间件 网络协议 物联网
MQTT协议问题之阿里云物联网服务器断开如何解决
MQTT协议是一个轻量级的消息传输协议,设计用于物联网(IoT)环境中设备间的通信;本合集将详细阐述MQTT协议的基本原理、特性以及各种实际应用场景,供用户学习和参考。
449 1
|
前端开发 JavaScript PHP
阿里云服务器部署Node.js项目
项目全程采用前端技术进行构建,做到组件化和模块化, 实现基于node.js技术的express搭建的接口和react技术实现的后台管理系统。
阿里云服务器部署Node.js项目
|
弹性计算 前端开发 JavaScript
阿里云服务器部署Node.js项目
项目全程采用前端技术进行构建,做到组件化和模块化, 实现基于node.js技术的express搭建的接口和react技术实现的后台管理系统。
阿里云服务器部署Node.js项目
|
前端开发 网络协议 JavaScript
在阿里云服务器部署node项目遇到的一些问题
在阿里云服务器部署node项目遇到的一些问题

相关产品

  • 物联网平台