天天看點

阿裡雲物聯網平台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接入示例

阿裡雲物聯網平台AMQP服務端訂閱NodeJS Demo
阿裡雲物聯網平台AMQP服務端訂閱NodeJS Demo
阿裡雲物聯網平台AMQP服務端訂閱NodeJS Demo
阿裡雲物聯網平台AMQP服務端訂閱NodeJS Demo
阿裡雲物聯網平台AMQP服務端訂閱NodeJS Demo
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

繼續閱讀