node-amqp 使用fanout发布订阅rabbitmq消息
2024-10-21 10:18:21
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);
})
});
})
})
初学,简单测试,理解不深,可能有潜在问题
最新文章
- 使用Excel 2007绘制甘特图
- 【BZOJ-1178】CONVENTION会议中心 倍增 + set (神思路好题!)
- datagrid中load,reload,loadData方法的区别
- python 中 struct 用法
- ibm rational software architect download
- [Angular 2] Use Service use Typescript
- 复制(5)——事务复制中的发布者(Publisher)
- python基础阶段 经典练习题 拾英札记(2)
- CCF-201503-3-节日
- ThreadLocal从源码到应用
- Android图像处理 - 高斯模糊的原理及实现
- 利用Navicat高效率postgresql转mysql数据库
- HBuild 连接安卓手机
- 20165234 《Java程序设计》第七周学习总结
- 网页一键加入QQ群
- [转载]Oracle 游标使用全解
- win xp 环境变量PATH默认值
- Sass (Syntactically Awesome StyleSheets)
- 关于mysql 删除数据后(.MYD,MYI)物理空间未释放
- 合规P2P平台成PE/VC新宠
热门文章
- kettle每天自动发送邮件总结_20161128
- float浮动改变display类型
- bzoj 1004 Cards &; poj 2409 Let it Bead —— 置换群
- UDK游戏打包详解
- 利用d3js绘出环形百分比环
- Javascript Tip(!!)
- oracle 日期问题 网上找到自己查阅时方便
- wpf RenderTargetBitmap保存控件为图片时图片尺寸不对的问题
- Java正则表达式之Matcher介绍
- js用";.";和";[]";获取属性的区别