nodejs AMQP服务端订阅的实现

简介: 目标: 明确个个参数的写法 ,以及环境要求.

步骤 :  


1)环境安装 node.js (下载安装包,下一步.....就行了)

这个是我的版本

IT-C1MPD4X5G943:webpack11 ganjun$ node -v

v14.15.1

IT-C1MPD4X5G943:webpack11 ganjun$


2)安装nodejs的包管理器 cnpm

这个是我的版本

IT-C1MPD4X5G943:webpack11 ganjun$ cnpm -v

cnpm@6.1.1 (/usr/local/lib/node_modules/cnpm/lib/parse_argv.js)

npm@6.14.9 (/usr/local/lib/node_modules/cnpm/node_modules/npm/lib/npm.js)

node@14.15.1 (/usr/local/bin/node)

npminstall@3.28.0 (/usr/local/lib/node_modules/cnpm/node_modules/npminstall/lib/index.js)

prefix=/usr/local

darwin x64 20.2.0

registry=https://r.npm.taobao.org


3)参考官网代码

https://help.aliyun.com/document_detail/143599.html?spm=a2c4g.11186623.6.656.5dd67cd8K9IMzE


4)代码以及依赖

package.json中添加以下依赖。

"dependencies": {
    "rhea": "^1.0.12"
 }


代码

constcontainer=require('rhea');
constcrypto=require('crypto');
//创建Connection。varconnection=container.connect({
//接入域名,请参见AMQP客户端接入说明文档。'host':'11112560*******.iot-amqp.cn-shanghai.aliyuncs.com',
'port':5671,
'transport':'tls',
'reconnect':true,
'idle_time_out':60000,
//userName组装方法,请参见AMQP客户端接入说明文档。其中的iotInstanceId,企业版实例请填写实例ID,公共实例直接删除${YourIotInstanceId}。'username':'4444444444|authMode=aksign,signMethod=hmacsha1,timestamp=1573489088171,authId=LTAIVne33sFywOG8,iotInstanceId=,consumerGroupId=DEFAULT_GROUP|', 
//计算签名,password组装方法,请参见AMQP客户端接入说明文档。'password':hmacSha1('9ViU8**********', 'authId=LTAIVne33sFywOG8&timestamp=1573489088171'),
});
//创建Receiver Link。varreceiver=connection.open_receiver();
//接收云端推送消息的回调函数。container.on('message', function(context) {
varmsg=context.message;
varmessageId=msg.message_id;
vartopic=msg.application_properties.topic;
varcontent=Buffer.from(msg.body.content).toString();
// 输出内容。console.log(content);
//发送ACK,注意不要在回调函数有耗时逻辑。context.delivery.accept();
});
//计算password签名。functionhmacSha1(key, context) {
returnBuffer.from(crypto.createHmac('sha1', key).update(context).digest())
.toString('base64');
}





目录
相关文章
|
消息中间件 网络协议 前端开发
laravel实现利用RabbitMQ实现MQTT即时通讯
laravel实现利用RabbitMQ实现MQTT即时通讯
639 0
|
消息中间件 Java 物联网
一文搞懂MQTT,如何在SpringBoot中使用MQTT实现消息的订阅和发布
之前介绍了RabbitMQ以及如何在SpringBoot项目中整合使用RabbitMQ,看过的朋友都说写的比较详细,希望再总结一下目前比较流行的MQTT。所以接下来,就来介绍什么MQTT?它在IoT中有着怎样的作用?如何在项目中使用MQTT?
12132 5
一文搞懂MQTT,如何在SpringBoot中使用MQTT实现消息的订阅和发布
|
2月前
|
消息中间件 RocketMQ
消息队列 MQ使用问题之如何使用SockJS和Stomp与RabbitMQ建立连接
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
存储 网络性能优化 数据库
我的mqtt协议和emqttd开源项目个人理解(8) - 客户端subscribe消息的源码分析
我的mqtt协议和emqttd开源项目个人理解(8) - 客户端subscribe消息的源码分析
140 0
|
消息中间件 缓存 JSON
我的mqtt协议和emqttd开源项目个人理解(13) - Hook使用和连接Kafka发送消息,使用brod库
我的mqtt协议和emqttd开源项目个人理解(13) - Hook使用和连接Kafka发送消息,使用brod库
345 0
HH
|
监控
针对服务端订阅
整理小结
HH
701 0
针对服务端订阅
|
消息中间件 JavaScript 物联网
阿里云物联网平台AMQP服务端订阅NodeJS Demo
服务端可以直接订阅产品下所有类型的消息:设备上报消息、设备状态变化通知、网关发现子设备上报、设备生命周期变更、设备拓扑关系变更。配置服务端订阅后,物联网平台会将产品下所有设备的已订阅类型的消息转发至您的服务端。本文主要演示如果使用NodeJs SDK进行AMQP服务端订阅
654 0
阿里云物联网平台AMQP服务端订阅NodeJS Demo
|
消息中间件 Java 存储