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