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





目录
相关文章
|
存储 自然语言处理 Oracle
打造全球化企业:ERP系统的国际化与多语言支持
打造全球化企业:ERP系统的国际化与多语言支持
839 2
|
jenkins Java 持续交付
maven 打包项目报Fatal Error: Unable to find package java.lang in classpath or bootclasspat
maven 打包项目报Fatal Error: Unable to find package java.lang in classpath or bootclasspat
maven 打包项目报Fatal Error: Unable to find package java.lang in classpath or bootclasspat
|
存储 SQL Java
Java8 Stream API 详解:流式编程进行数据处理
Java8 Stream API 详解:流式编程进行数据处理
|
消息中间件 JavaScript Java
跨平台 AMQP 客户端开发指南
【8月更文第28天】高级消息队列协议 (AMQP) 是一种开放标准的应用层协议,用于中间件。它定义了消息如何在消息代理(通常是消息队列服务器)与客户端应用程序之间传递。本文将指导您如何为不同的编程语言构建跨平台的 AMQP 客户端,并提供一些具体的代码示例。
311 1
|
Python
Python中的try-except异常处理机制
Python中的try-except异常处理机制
235 0
|
消息中间件 传感器 监控
AMQP 与物联网 (IoT) 应用的结合
【8月更文第28天】高级消息队列协议 (AMQP) 是一种开放标准的应用层协议,特别适合于物联网 (IoT) 场景中的消息传递。AMQP 提供了可靠的、可扩展的消息传输机制,能够处理来自大量设备的数据流。本文将探讨 AMQP 在 IoT 应用中的优势,并提供使用不同编程语言构建 AMQP 客户端的具体示例。
402 0
|
Python
[python]使用gunicorn部署fastapi服务
【8月更文挑战第6天】以下是使用`gunicorn`部署`FastAPI`服务的简要步骤:首先安装`FastAPI`与`gunicorn`;创建一个简单的`FastAPI`应用,例如定义根路径返回"Hello World";保存代码为`main.py`;在应用目录中启动`gunicorn`服务,如`gunicorn main:app -w 4 -b 0.0.0.0:8000`,其中`-w 4`指定4个工作进程,`-b`绑定至所有IP的8000端口。这样就完成了基础部署,可通过`http://服务器IP:8000/`访问应用。
469 0
|
存储 对象存储
【阿里云OSS】You have no right to access this object because of bucket acl.
【阿里云OSS】You have no right to access this object because of bucket acl.
17947 1
【阿里云OSS】You have no right to access this object because of bucket acl.
|
搜索推荐
21 常见排序算法效率比较
21 常见排序算法效率比较
438 0
|
机器学习/深度学习 C语言
C语言:给定两个数,求这两个数的最大公约数(新思路:辗转相除法)
思路一:普通方法 总体思路: (一). 生成相关变量; 从键盘输入两个数;
233 0
C语言:给定两个数,求这两个数的最大公约数(新思路:辗转相除法)