阿里云物联网平台AMQP服务端订阅NodeJS Demo
Step By Step 配置服务端订阅 1、创建消费组 2、创建订阅 参数获取 3、ConsumerGroupId获取位置 4、AccessKeyId、AccessKeySecret及Uid获取 参考地址:阿里云常见参数获取位置 5、iotInstanceId 独享实例需要指定,公共实例配置为空即可。 6、ClientId可以任意指定,例如设置为:tarodemo。 7、Host: ${uid}.iot-amqp.${regionId}.aliyuncs.com 例如:184*.iot-amqp.cn-shanghai.aliyuncs.com SDK 安装 npm install rhea 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}×tamp=1573489088171'), 'password': hmacSha1('v7C***********', 'authId=**********×tamp=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'); } 测试效果 参考链接 Node.js SDK接入示例阿里云常见参数获取位置