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





目录
相关文章
|
12月前
|
消息中间件 Java 数据安全/隐私保护
搭建RabbitMQ消息服务,整合SpringBoot实现收发消息(三)
搭建RabbitMQ消息服务,整合SpringBoot实现收发消息
|
11月前
|
传感器 JSON 物联网
什么是MQTT遗嘱消息?如何配置和处理遗嘱消息?
什么是MQTT遗嘱消息?如何配置和处理遗嘱消息?
641 0
什么是MQTT遗嘱消息?如何配置和处理遗嘱消息?
|
消息中间件 Java 物联网
一文搞懂MQTT,如何在SpringBoot中使用MQTT实现消息的订阅和发布
之前介绍了RabbitMQ以及如何在SpringBoot项目中整合使用RabbitMQ,看过的朋友都说写的比较详细,希望再总结一下目前比较流行的MQTT。所以接下来,就来介绍什么MQTT?它在IoT中有着怎样的作用?如何在项目中使用MQTT?
12349 5
一文搞懂MQTT,如何在SpringBoot中使用MQTT实现消息的订阅和发布
|
3月前
|
消息中间件 RocketMQ
消息队列 MQ使用问题之如何使用SockJS和Stomp与RabbitMQ建立连接
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
11月前
|
消息中间件
消息中间件系列教程(16) -RabbitMQ-应答模式
消息中间件系列教程(16) -RabbitMQ-应答模式
60 0
|
12月前
|
消息中间件 Java
搭建RabbitMQ消息服务,整合SpringBoot实现收发消息(二)
搭建RabbitMQ消息服务,整合SpringBoot实现收发消息
|
12月前
|
消息中间件 Java 测试技术
搭建RabbitMQ消息服务,整合SpringBoot实现收发消息(四)
搭建RabbitMQ消息服务,整合SpringBoot实现收发消息
|
12月前
|
消息中间件 存储 Java
搭建RabbitMQ消息服务,整合SpringBoot实现收发消息(一)
搭建RabbitMQ消息服务,整合SpringBoot实现收发消息
106 0
|
消息中间件 JSON JavaScript
Springboot 整合Websocket+Stomp协议+RabbitMQ做消息代理 实例教程
Springboot 整合Websocket+Stomp协议+RabbitMQ做消息代理 实例教程
1763 0
Springboot 整合Websocket+Stomp协议+RabbitMQ做消息代理 实例教程
|
存储 网络性能优化 数据库
我的mqtt协议和emqttd开源项目个人理解(8) - 客户端subscribe消息的源码分析
我的mqtt协议和emqttd开源项目个人理解(8) - 客户端subscribe消息的源码分析
141 0
下一篇
无影云桌面