阿里云物联网平台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
相关文章
|
8月前
|
存储 运维 监控
物联网平台常见类别及对应平台(一)
物联网平台常见类别及对应平台(一)
520 0
|
3月前
|
消息中间件 DataWorks 物联网
MQTT问题之接入阿里云物联网平台如何解决
MQTT接入是指将设备或应用通过MQTT协议接入到消息服务器,以实现数据的发布和订阅;本合集着眼于MQTT接入的流程、配置指导以及常见接入问题的解决方法,帮助用户实现稳定可靠的消息交换。
205 1
|
8月前
|
存储 机器学习/深度学习 监控
物联网平台常见类别及对应平台(二)
物联网平台常见类别及对应平台(二)
259 0
|
8月前
|
消息中间件 运维 监控
课时3:10分钟玩转阿里云物联网平台设备接入、管理、运维(二)
10分钟玩转阿里云物联网平台设备接入、管理、运维
338 0
|
8月前
|
物联网 开发工具 网络架构
基于AT模组连接阿里云物联网平台
本实验主要介绍基于AT模组,通过AT指令将端侧设备快速连接到阿里云物联网平台,助力设备智能化改造。
526 0
|
12月前
《阿里云产品手册2022-2023 版》——物联网平台
《阿里云产品手册2022-2023 版》——物联网平台
455 1
|
12月前
|
存储 人工智能 运维
|
2天前
|
存储 安全 物联网
未来交织:区块链、物联网与虚拟现实的技术融合与应用革新
【5月更文挑战第9天】 随着科技的迅猛发展,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在逐渐渗透到我们生活的各个角落。这些技术不仅单独发展,而且越来越多地相互融合,催生出新的应用场景和商业模式。区块链技术以其去中心化和不可篡改的特性,为数据安全提供了坚实的保障;物联网通过智能化连接日常设备,极大地提升了生活和工作效率;而虚拟现实则通过沉浸式体验,改变了人们的娱乐和学习方式。本文将探讨这些技术的发展趋势,并分析它们在不同领域的结合应用,从而描绘出一个由新技术驱动的未来蓝图。
|
2天前
|
安全 物联网 区块链
未来技术的融合潮流:区块链、物联网与虚拟现实的交汇点
【5月更文挑战第9天】 在数字化时代的浪潮中,新技术不断涌现,重塑着商业模式、社会互动和日常生活。本文聚焦于三项前沿技术——区块链、物联网(IoT)和虚拟现实(VR),探讨它们各自的发展趋势以及如何相互交织,共同构建一个更加智能、安全和沉浸式的未来世界。通过分析每项技术的核心优势和潜在挑战,文章描绘了一个多技术融合的应用蓝图,旨在为读者提供一个关于这些技术如何联合起来改变未来世界的清晰视角。
15 5
|
23小时前
|
供应链 安全 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【5月更文挑战第11天】 在技术的浪潮中,新兴技术不断涌现,它们以独特的方式重塑着世界。本文聚焦于区块链、物联网(IoT)和虚拟现实(VR)这三项前沿科技,探讨它们的发展动向以及如何在不同的应用场景中交织创新。区块链技术提供了去中心化的数据安全解决方案,物联网将物理世界无缝连接至数字网络,而虚拟现实创造了沉浸式体验的新维度。这三者结合,预示着一个互联、安全且高度互动的未来。

相关产品

  • 物联网平台