0.0.1 • Published 6 years ago
zd-amqp v0.0.1
项目介绍
- 该组件是amqplib组件的对外接口。
- 提供了发送消息、接收消息等接口
- 该版本目的在于提供node端简单的收发消息API
- 该版本暂不支持消息回执,可能会出现消息丢失
- node端不用创建消息队列和交换器
- 权限管理在消息服务进行,node端需要提前确认消息队列名称和交换器名称等信息。
使用说明:
- 安装组件:
npm install --save zd-amqp
- 在项目中导入并调用:
let amqpAPI = require('zd-amqp');
/**
* 其中hostname ,username,password,vhost为必传参数
* 账号密码和虚拟机要根据消息服务商的设置配置,否则可能会发送或接收失败。
*
*/
let options = {
hostname: 'localhost',
username: 'guest',
password: 'guest',
protocol: 'amqp',
vhost: 'vhost_one'
}
//监听一个消息队列:topic.bimOnline.msg
amqpAPI.amqp(options).consume('topic.bimOnline.msg',(ret,data)=>{
if(ret==1){
//收到消息,进行处理
console.log('node receiver::'+data)
}else {
//收到异常消息
console.log('receiver err::'+data)
}
})
//发送一个消息到指定的队列:采用direct模式
amqpAPI.amqp(options).publishToQ('direct.serverInfo','data from node direct',(ret,data)=>{
if(ret==1){
console.log('node sender::'+data)
}else {
console.log('sender err::'+data)
}
})
//发送一个消息到一个fanout类型的交换器,至于路由到哪个队列根据该交换器的路由规则进行
amqpAPI.amqp(options).publishToEx('fanOutServerExchange','data from node fanout',(ret,data)=>{
if(ret==1){
console.log('node sender::'+data)
} else {
console.log('sender err::'+data)
}
})
//发送一个消息到一个交换器,并指明路由key,这个消息将会发送到topic类型的路由器,消息会根据topic路由
amqpAPI.amqp(options).publishToTopic('topicExchange.Server','topic.bimOnline.msg','data from node topic',(ret,data)=>{
if(ret==1){
console.log('node sender::'+data)
}else {
console.log('sender err::'+data)
}
})