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

dawei

【声明】:石嘴山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。