node-amqp 使用fanout发布订阅rabbitmq消息

publisher代码

const amqp = require('amqp');

let option = {
    host: 'server-ip',
    port: 5672,
    login: 'guest',
    password: 'guest',
    connectionTimeout: 10000,
    authMechanism: 'AMQPLAIN',
    vhost: '/',
    noDelay: true,
    ssl: {
        enabled: false
    }
}
const connection = amqp.createConnection(option);

connection.on('error',function(e){
    console.log("Error from amqp: ", e);
})
let default_exchange = {};
connection.on('ready', function(){
    default_exchange = connection.exchange('fans',{type:'fanout'}); //创建 fanout 类型的交换机
    let q = connection.queue('my-queue');
    q.bind(default_exchange,'my-queue');
    
    let qq = connection.queue('qqq');
    qq.bind(default_exchange, 'qqq');
    setInterval(publish_message, 2000);
})

let count= 0;
publish_message = function() {
    let message = {
      hello: 'world',
      time: Date.now(),
      count: count++
    };
    default_exchange.publish('', message);
    return console.log("my-queue message published: " + (JSON.stringify(message)) + " to queue: my-queue");
  }; 

  receiver1 代码

const amqp = require('amqp');

let option = {
    host: 'server-ip',
    port: 5672,
    login: 'guest',
    password: 'guest',
    connectionTimeout: 10000,
    authMechanism: 'AMQPLAIN',
    vhost: '/',
    noDelay: true,
    ssl: {
        enabled: false
    }
}
const connection = amqp.createConnection(option);

connection.on('error',function(e){
    console.log("Error from amqp: ", e);
})

connection.on('ready', function(){
    connection.queue('my-queue', function(q){
        console.log('my-queue is already subscribing');
        q.bind('logs','my-queue', function(){
            q.subscribe(function(message){
                console.log('----receiveMessage: ',message);
            })
        });
    })
})

receiver2 代码

const amqp = require('amqp');

let option = {
    host: 'server-ip',
    port: 5672,
    login: 'guest',
    password: 'guest',
    connectionTimeout: 10000,
    authMechanism: 'AMQPLAIN',
    vhost: '/',
    noDelay: true,
    ssl: {
        enabled: false
    }
}
const connection = amqp.createConnection(option);

connection.on('error',function(e){
    console.log("Error from amqp: ", e);
})
connection.on('ready', function(){
    connection.queue('qqq', function(q){
        console.log('my-queue is already subscribing');
        q.bind('fans','qqq',function(){
            q.subscribe(function(message){
                console.log('----receiveMessage: ',message);
            })
        });
    })
})

初学,简单测试,理解不深,可能有潜在问题

转载于:https://www.cnblogs.com/lc-ant/p/9259240.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值