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


Step By Step


配置服务端订阅

1、创建消费组
阿里云物联网平台AMQP服务端订阅NodeJS Demo


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


参数获取

3、ConsumerGroupId获取位置
阿里云物联网平台AMQP服务端订阅NodeJS Demo


4、AccessKeyId、AccessKeySecret及Uid获取


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



5、iotInstanceId 独享实例需要指定,公共实例配置为空即可。
阿里云物联网平台AMQP服务端订阅NodeJS Demo


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


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


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


SDK 安装

npm install rhea


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


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');

}


测试效果

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


参考链接


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



Step By Step


配置服务端订阅

1、创建消费组
阿里云物联网平台AMQP服务端订阅NodeJS Demo


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


参数获取

3、ConsumerGroupId获取位置
阿里云物联网平台AMQP服务端订阅NodeJS Demo


4、AccessKeyId、AccessKeySecret及Uid获取


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



5、iotInstanceId 独享实例需要指定,公共实例配置为空即可。
阿里云物联网平台AMQP服务端订阅NodeJS Demo


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


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


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


SDK 安装

npm install rhea


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


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');

}


测试效果

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


参考链接


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


上一篇:C#--WinForm获取本机网卡的型号,IP地址,子网掩码和网关


下一篇:【原】oracle11g 客户端安装检测失败问题